maddy

Fork https://github.com/foxcpp/maddy

git clone git://git.lin.moe/go/maddy.git

  1# Followed specifications
  2
  3This page lists Internet Standards and other specifications followed by
  4maddy along with any known deviations.
  5
  6
  7## Message format
  8
  9- [RFC 2822] - Internet Message Format
 10- [RFC 2045] - Multipurpose Internet Mail Extensions (MIME) (part 1)
 11- [RFC 2046] - Multipurpose Internet Mail Extensions (MIME) (part 2)
 12- [RFC 2047] - Multipurpose Internet Mail Extensions (MIME) (part 3)
 13- [RFC 2048] - Multipurpose Internet Mail Extensions (MIME) (part 4)
 14- [RFC 2049] - Multipurpose Internet Mail Extensions (MIME) (part 5)
 15- [RFC 6532] - Internationalized Email Headers
 16
 17- [RFC 2183] - Communicating Presentation Information in Internet Messages: The
 18  Content-Disposition Header Field
 19
 20## IMAP
 21
 22- [RFC 3501] - Internet Message Access Protocol - Version 4rev1
 23    * **Partial**: `\Recent` flag is not reset sometimes.
 24- [RFC 2152] - UTF-7
 25
 26### Extensions
 27
 28- [RFC 2595] - Using TLS with IMAP, POP3 and ACAP
 29- [RFC 7889] - The IMAP APPENDLIMIT Extension
 30- [RFC 3348] - The Internet Message Action Protocol (IMAP4). Child Mailbox
 31  Extension
 32- [RFC 6851] - Internet Message Access Protocol (IMAP) - MOVE Extension
 33- [RFC 6154] - IMAP LIST Extension for Special-Use Mailboxes
 34    * **Partial**: Only SPECIAL-USE capability.
 35- [RFC 5255] - Internet Message Access Protocol Internationalization
 36    * **Partial**: Only I18NLEVEL=1 capability.
 37- [RFC 4978] - The IMAP COMPRESS Extension
 38- [RFC 3691] - Internet Message Access Protocol (IMAP) UNSELECT command
 39- [RFC 2177] - IMAP4 IDLE command
 40- [RFC 7888] - IMAP4 Non-Synchronizing Literals
 41    * LITERAL+ capability.
 42- [RFC 4959] - IMAP Extension for Simple Authentication and Security Layer
 43  (SASL) Initial Client Response
 44
 45## SMTP
 46
 47- [RFC 2033] - Local Mail Transfer Protocol
 48- [RFC 5321] - Simple Mail Transfer Protocol
 49- [RFC 6409] - Message Submission for Mail
 50
 51### Extensions
 52
 53- [RFC 1870] - SMTP Service Extension for Message Size Declaration
 54- [RFC 2920] - SMTP Service Extension for Command Pipelining
 55    * Server support only, not used by SMTP client
 56- [RFC 2034] - SMTP Service Extension for Returning Enhanced Error Codes
 57- [RFC 3207] - SMTP Service Extension for Secure SMTP over Transport Layer
 58  Security
 59- [RFC 4954] - SMTP Service Extension for Authentication
 60- [RFC 6152] - SMTP Extension for 8-bit MIME
 61- [RFC 6531] - SMTP Extension for Internationalized Email
 62
 63### Misc
 64
 65- [RFC 6522] - The Multipart/Report Content Type for the Reporting of Mail
 66  System Administrative Messages
 67- [RFC 3464] - An Extensible Message Format for Delivery Status Notifications
 68- [RFC 6533] - Internationalized Delivery Status and Disposition Notifications
 69
 70## Email security
 71
 72### User authentication
 73
 74- [RFC 4422] - Simple Authentication and Security Layer (SASL)
 75- [RFC 4616] - The PLAIN Simple Authentication and Security Layer (SASL)
 76  Mechanism
 77
 78### Sender authentication
 79
 80- [RFC 6376] - DomainKeys Identified Mail (DKIM) Signatures
 81- [RFC 7001] - Message Header Field for Indicating Message Authentication Status
 82- [RFC 7208] - Sender Policy Framework (SPF) for Authorizing Use of Domains in
 83  Email, Version 1
 84- [RFC 7372] - Email Authentication Status Codes
 85- [RFC 7479] - Domain-based Message Authentication, Reporting, and Conformance
 86  (DMARC)
 87    * **Partial**: No report generation.
 88- [RFC 8301] - Cryptographic Algorithm and Key Usage Update to DomainKeys
 89  Identified Mail (DKIM)
 90- [RFC 8463] - A New Cryptographic Signature Method for DomainKeys Identified
 91  Mail (DKIM)
 92- [RFC 8616] - Email Authentication for Internationalized Mail
 93
 94### Recipient authentication
 95
 96- [RFC 4033] - DNS Security Introduction and Requirements
 97- [RFC 6698] - The DNS-Based Authentication of Named Entities (DANE) Transport
 98  Layer Security (TLS) Protocol: TLSA
 99- [RFC 7672] - SMTP Security via Opportunistic DNS-Based Authentication of
100  Named Entities (DANE) Transport Layer Security (TLS)
101- [RFC 8461] - SMTP MTA Strict Transport Security (MTA-STS)
102
103## Unicode, encodings, internationalization
104
105- [RFC 3492] - Punycode: A Bootstring encoding of Unicode for Internationalized
106  Domain Names in Applications (IDNA)
107- [RFC 3629] - UTF-8, a transformation format of ISO 10646
108- [RFC 5890] - Internationalized Domain Names for Applications (IDNA):
109  Definitions and Document Framework
110- [RFC 5891] - Internationalized Domain Names for Applications (IDNA): Protocol
111- [RFC 7616] - Preparation, Enforcement, and Comparison of Internationalized
112  Strings Representing Usernames and Passwords
113- [RFC 8264] - PRECIS Framework: Preparation, Enforcement, and Comparison of
114  Internationalized Strings in Application Protocols
115- [Unicode 11.0.0]
116    - [UAX #15] - Unicode Normalization Forms
117
118There is a huge list of non-Unicode encodings supported by message parser used
119for IMAP static cache and search.  See [Unicode support](unicode.md) page for
120details.
121
122## Misc
123
124- [RFC 5782] - DNS Blacklists and Whitelists
125
126
127[GH 188]: https://github.com/foxcpp/maddy/issues/188
128
129[RFC 2822]: https://tools.ietf.org/html/rfc2822
130[RFC 2045]: https://tools.ietf.org/html/rfc2045
131[RFC 2046]: https://tools.ietf.org/html/rfc2046
132[RFC 2047]: https://tools.ietf.org/html/rfc2047
133[RFC 2048]: https://tools.ietf.org/html/rfc2048
134[RFC 2049]: https://tools.ietf.org/html/rfc2049
135[RFC 6532]: https://tools.ietf.org/html/rfc6532
136[RFC 2183]: https://tools.ietf.org/html/rfc2183
137[RFC 3501]: https://tools.ietf.org/html/rfc3501
138[RFC 2152]: https://tools.ietf.org/html/rfc2152
139[RFC 2595]: https://tools.ietf.org/html/rfc2595
140[RFC 7889]: https://tools.ietf.org/html/rfc7889
141[RFC 3348]: https://tools.ietf.org/html/rfc3348
142[RFC 6851]: https://tools.ietf.org/html/rfc6851
143[RFC 6154]: https://tools.ietf.org/html/rfc6154
144[RFC 5255]: https://tools.ietf.org/html/rfc5255
145[RFC 4978]: https://tools.ietf.org/html/rfc4978
146[RFC 3691]: https://tools.ietf.org/html/rfc3691
147[RFC 2177]: https://tools.ietf.org/html/rfc2177
148[RFC 7888]: https://tools.ietf.org/html/rfc7888
149[RFC 4959]: https://tools.ietf.org/html/rfc4959
150[RFC 2033]: https://tools.ietf.org/html/rfc2033
151[RFC 5321]: https://tools.ietf.org/html/rfc5321
152[RFC 6409]: https://tools.ietf.org/html/rfc6409
153[RFC 1870]: https://tools.ietf.org/html/rfc1870
154[RFC 2920]: https://tools.ietf.org/html/rfc2920
155[RFC 2034]: https://tools.ietf.org/html/rfc2034
156[RFC 3207]: https://tools.ietf.org/html/rfc3207
157[RFC 4954]: https://tools.ietf.org/html/rfc4954
158[RFC 6152]: https://tools.ietf.org/html/rfc6152
159[RFC 6531]: https://tools.ietf.org/html/rfc6531
160[RFC 6522]: https://tools.ietf.org/html/rfc6522
161[RFC 3464]: https://tools.ietf.org/html/rfc3464
162[RFC 6533]: https://tools.ietf.org/html/rfc6533
163[RFC 4422]: https://tools.ietf.org/html/rfc4422
164[RFC 4616]: https://tools.ietf.org/html/rfc4616
165[RFC 6376]: https://tools.ietf.org/html/rfc6376
166[RFC 7001]: https://tools.ietf.org/html/rfc7001
167[RFC 7208]: https://tools.ietf.org/html/rfc7208
168[RFC 7372]: https://tools.ietf.org/html/rfc7372
169[RFC 7479]: https://tools.ietf.org/html/rfc7479
170[RFC 8301]: https://tools.ietf.org/html/rfc8301
171[RFC 8463]: https://tools.ietf.org/html/rfc8463
172[RFC 8616]: https://tools.ietf.org/html/rfc8616
173[RFC 4033]: https://tools.ietf.org/html/rfc4033
174[RFC 6698]: https://tools.ietf.org/html/rfc6698
175[RFC 7672]: https://tools.ietf.org/html/rfc7672
176[RFC 8461]: https://tools.ietf.org/html/rfc8461
177[RFC 3492]: https://tools.ietf.org/html/rfc3492
178[RFC 3629]: https://tools.ietf.org/html/rfc3629
179[RFC 5890]: https://tools.ietf.org/html/rfc5890
180[RFC 5891]: https://tools.ietf.org/html/rfc5891
181[RFC 7616]: https://tools.ietf.org/html/rfc7616
182[RFC 8264]: https://tools.ietf.org/html/rfc8264
183[RFC 5782]: https://tools.ietf.org/html/rfc5782
184[RFC 2822]: https://tools.ietf.org/html/rfc2822
185[RFC 2045]: https://tools.ietf.org/html/rfc2045
186[RFC 2046]: https://tools.ietf.org/html/rfc2046
187[RFC 2047]: https://tools.ietf.org/html/rfc2047
188[RFC 2048]: https://tools.ietf.org/html/rfc2048
189[RFC 2049]: https://tools.ietf.org/html/rfc2049
190[RFC 6532]: https://tools.ietf.org/html/rfc6532
191[RFC 3501]: https://tools.ietf.org/html/rfc3501
192[RFC 2595]: https://tools.ietf.org/html/rfc2595
193[RFC 7889]: https://tools.ietf.org/html/rfc7889
194[RFC 3348]: https://tools.ietf.org/html/rfc3348
195[RFC 6851]: https://tools.ietf.org/html/rfc6851
196[RFC 6154]: https://tools.ietf.org/html/rfc6154
197[RFC 5255]: https://tools.ietf.org/html/rfc5255
198[RFC 4978]: https://tools.ietf.org/html/rfc4978
199[RFC 3691]: https://tools.ietf.org/html/rfc3691
200[RFC 2177]: https://tools.ietf.org/html/rfc2177
201[RFC 7888]: https://tools.ietf.org/html/rfc7888
202[RFC 4959]: https://tools.ietf.org/html/rfc4959
203[RFC 2033]: https://tools.ietf.org/html/rfc2033
204[RFC 5321]: https://tools.ietf.org/html/rfc5321
205[RFC 6409]: https://tools.ietf.org/html/rfc6409
206[RFC 1870]: https://tools.ietf.org/html/rfc1870
207[RFC 2920]: https://tools.ietf.org/html/rfc2920
208[RFC 2034]: https://tools.ietf.org/html/rfc2034
209[RFC 3207]: https://tools.ietf.org/html/rfc3207
210[RFC 4954]: https://tools.ietf.org/html/rfc4954
211[RFC 6152]: https://tools.ietf.org/html/rfc6152
212[RFC 6531]: https://tools.ietf.org/html/rfc6531
213[RFC 6522]: https://tools.ietf.org/html/rfc6522
214[RFC 3464]: https://tools.ietf.org/html/rfc3464
215[RFC 6533]: https://tools.ietf.org/html/rfc6533
216[RFC 4422]: https://tools.ietf.org/html/rfc4422
217[RFC 4616]: https://tools.ietf.org/html/rfc4616
218[RFC 6376]: https://tools.ietf.org/html/rfc6376
219[RFC 7001]: https://tools.ietf.org/html/rfc7001
220[RFC 7208]: https://tools.ietf.org/html/rfc7208
221[RFC 7372]: https://tools.ietf.org/html/rfc7372
222[RFC 7479]: https://tools.ietf.org/html/rfc7479
223[RFC 8301]: https://tools.ietf.org/html/rfc8301
224[RFC 8463]: https://tools.ietf.org/html/rfc8463
225[RFC 8616]: https://tools.ietf.org/html/rfc8616
226[RFC 4033]: https://tools.ietf.org/html/rfc4033
227[RFC 6698]: https://tools.ietf.org/html/rfc6698
228[RFC 7672]: https://tools.ietf.org/html/rfc7672
229[RFC 8461]: https://tools.ietf.org/html/rfc8461
230[RFC 3492]: https://tools.ietf.org/html/rfc3492
231[RFC 3629]: https://tools.ietf.org/html/rfc3629
232[RFC 5890]: https://tools.ietf.org/html/rfc5890
233[RFC 5891]: https://tools.ietf.org/html/rfc5891
234[RFC 7616]: https://tools.ietf.org/html/rfc7616
235[RFC 8264]: https://tools.ietf.org/html/rfc8264
236[RFC 5782]: https://tools.ietf.org/html/rfc5782
237[RFC 2822]: https://tools.ietf.org/html/rfc2822
238[RFC 2045]: https://tools.ietf.org/html/rfc2045
239[RFC 2046]: https://tools.ietf.org/html/rfc2046
240[RFC 2047]: https://tools.ietf.org/html/rfc2047
241[RFC 2048]: https://tools.ietf.org/html/rfc2048
242[RFC 2049]: https://tools.ietf.org/html/rfc2049
243[RFC 6532]: https://tools.ietf.org/html/rfc6532
244[RFC 3501]: https://tools.ietf.org/html/rfc3501
245[RFC 2595]: https://tools.ietf.org/html/rfc2595
246[RFC 7889]: https://tools.ietf.org/html/rfc7889
247[RFC 3348]: https://tools.ietf.org/html/rfc3348
248[RFC 6851]: https://tools.ietf.org/html/rfc6851
249[RFC 6154]: https://tools.ietf.org/html/rfc6154
250[RFC 5255]: https://tools.ietf.org/html/rfc5255
251[RFC 4978]: https://tools.ietf.org/html/rfc4978
252[RFC 3691]: https://tools.ietf.org/html/rfc3691
253[RFC 2177]: https://tools.ietf.org/html/rfc2177
254[RFC 7888]: https://tools.ietf.org/html/rfc7888
255[RFC 4959]: https://tools.ietf.org/html/rfc4959
256[RFC 2033]: https://tools.ietf.org/html/rfc2033
257[RFC 5321]: https://tools.ietf.org/html/rfc5321
258[RFC 6409]: https://tools.ietf.org/html/rfc6409
259[RFC 1870]: https://tools.ietf.org/html/rfc1870
260[RFC 2920]: https://tools.ietf.org/html/rfc2920
261[RFC 2034]: https://tools.ietf.org/html/rfc2034
262[RFC 3207]: https://tools.ietf.org/html/rfc3207
263[RFC 4954]: https://tools.ietf.org/html/rfc4954
264[RFC 6152]: https://tools.ietf.org/html/rfc6152
265[RFC 6531]: https://tools.ietf.org/html/rfc6531
266[RFC 6522]: https://tools.ietf.org/html/rfc6522
267[RFC 3464]: https://tools.ietf.org/html/rfc3464
268[RFC 6533]: https://tools.ietf.org/html/rfc6533
269[RFC 4422]: https://tools.ietf.org/html/rfc4422
270[RFC 4616]: https://tools.ietf.org/html/rfc4616
271[RFC 6376]: https://tools.ietf.org/html/rfc6376
272[RFC 8301]: https://tools.ietf.org/html/rfc8301
273[RFC 8463]: https://tools.ietf.org/html/rfc8463
274[RFC 7208]: https://tools.ietf.org/html/rfc7208
275[RFC 7372]: https://tools.ietf.org/html/rfc7372
276[RFC 7479]: https://tools.ietf.org/html/rfc7479
277[RFC 8616]: https://tools.ietf.org/html/rfc8616
278[RFC 4033]: https://tools.ietf.org/html/rfc4033
279[RFC 6698]: https://tools.ietf.org/html/rfc6698
280[RFC 7672]: https://tools.ietf.org/html/rfc7672
281[RFC 8461]: https://tools.ietf.org/html/rfc8461
282[RFC 3492]: https://tools.ietf.org/html/rfc3492
283[RFC 3629]: https://tools.ietf.org/html/rfc3629
284[RFC 5890]: https://tools.ietf.org/html/rfc5890
285[RFC 5891]: https://tools.ietf.org/html/rfc5891
286[RFC 7616]: https://tools.ietf.org/html/rfc7616
287[RFC 8264]: https://tools.ietf.org/html/rfc8264
288[RFC 5782]: https://tools.ietf.org/html/rfc5782
289
290[Unicode 11.0.0]: https://www.unicode.org/versions/components-11.0.0.html
291[UAX #15]: https://unicode.org/reports/tr15/