maddy/docs/internals/specifications.md

12 KiB

Followed specifications

This page lists Internet Standards and other specifications followed by maddy along with any known deviations.

Message format

  • RFC 2822 - Internet Message Format

  • RFC 2045 - Multipurpose Internet Mail Extensions (MIME) (part 1)

  • RFC 2046 - Multipurpose Internet Mail Extensions (MIME) (part 2)

  • RFC 2047 - Multipurpose Internet Mail Extensions (MIME) (part 3)

  • RFC 2048 - Multipurpose Internet Mail Extensions (MIME) (part 4)

  • RFC 2049 - Multipurpose Internet Mail Extensions (MIME) (part 5)

  • RFC 6532 - Internationalized Email Headers

  • RFC 2183 - Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field

IMAP

  • RFC 3501 - Internet Message Access Protocol - Version 4rev1
    • Partial: \Recent flag is not reset sometimes.
  • RFC 2152 - UTF-7

Extensions

  • RFC 2595 - Using TLS with IMAP, POP3 and ACAP
  • RFC 7889 - The IMAP APPENDLIMIT Extension
  • RFC 3348 - The Internet Message Action Protocol (IMAP4). Child Mailbox Extension
  • RFC 6851 - Internet Message Access Protocol (IMAP) - MOVE Extension
  • RFC 6154 - IMAP LIST Extension for Special-Use Mailboxes
    • Partial: Only SPECIAL-USE capability.
  • RFC 5255 - Internet Message Access Protocol Internationalization
    • Partial: Only I18NLEVEL=1 capability.
  • RFC 4978 - The IMAP COMPRESS Extension
  • RFC 3691 - Internet Message Access Protocol (IMAP) UNSELECT command
  • RFC 2177 - IMAP4 IDLE command
  • RFC 7888 - IMAP4 Non-Synchronizing Literals
    • LITERAL+ capability.
  • RFC 4959 - IMAP Extension for Simple Authentication and Security Layer (SASL) Initial Client Response

SMTP

  • RFC 2033 - Local Mail Transfer Protocol
  • RFC 5321 - Simple Mail Transfer Protocol
  • RFC 6409 - Message Submission for Mail

Extensions

  • RFC 1870 - SMTP Service Extension for Message Size Declaration
  • RFC 2920 - SMTP Service Extension for Command Pipelining
    • Server support only, not used by SMTP client
  • RFC 2034 - SMTP Service Extension for Returning Enhanced Error Codes
  • RFC 3207 - SMTP Service Extension for Secure SMTP over Transport Layer Security
  • RFC 4954 - SMTP Service Extension for Authentication
  • RFC 6152 - SMTP Extension for 8-bit MIME
  • RFC 6531 - SMTP Extension for Internationalized Email

Misc

  • RFC 6522 - The Multipart/Report Content Type for the Reporting of Mail System Administrative Messages
  • RFC 3464 - An Extensible Message Format for Delivery Status Notifications
  • RFC 6533 - Internationalized Delivery Status and Disposition Notifications

Email security

User authentication

  • RFC 4422 - Simple Authentication and Security Layer (SASL)
  • RFC 4616 - The PLAIN Simple Authentication and Security Layer (SASL) Mechanism

Sender authentication

  • RFC 6376 - DomainKeys Identified Mail (DKIM) Signatures
  • RFC 7001 - Message Header Field for Indicating Message Authentication Status
  • RFC 7208 - Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1
  • RFC 7372 - Email Authentication Status Codes
  • RFC 7479 - Domain-based Message Authentication, Reporting, and Conformance (DMARC)
    • Partial: No report generation.
  • RFC 8301 - Cryptographic Algorithm and Key Usage Update to DomainKeys Identified Mail (DKIM)
  • RFC 8463 - A New Cryptographic Signature Method for DomainKeys Identified Mail (DKIM)
  • RFC 8616 - Email Authentication for Internationalized Mail

Recipient authentication

  • RFC 4033 - DNS Security Introduction and Requirements
  • RFC 6698 - The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA
  • RFC 7672 - SMTP Security via Opportunistic DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS)
  • RFC 8461 - SMTP MTA Strict Transport Security (MTA-STS)

Unicode, encodings, internationalization

  • RFC 3492 - Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)
  • RFC 3629 - UTF-8, a transformation format of ISO 10646
  • RFC 5890 - Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework
  • RFC 5891 - Internationalized Domain Names for Applications (IDNA): Protocol
  • RFC 7616 - Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords
  • RFC 8264 - PRECIS Framework: Preparation, Enforcement, and Comparison of Internationalized Strings in Application Protocols
  • Unicode 11.0.0
    • UAX #15 - Unicode Normalization Forms

There is a huge list of non-Unicode encodings supported by message parser used for IMAP static cache and search. See Unicode support page for details.

Misc

  • RFC 5782 - DNS Blacklists and Whitelists