Protocols
Summary #
First a high-level description of protocols and implementation status. Each topic links to the second table with more detailed implementation status per RFC.
Topic | Implemented | Description |
---|---|---|
Internet Message Format | Yes | The format of email messages |
SMTP | Yes | Delivering email |
SPF | Yes | Message authentication based on sending IP |
DKIM | Yes | Message authentication based on message header |
DMARC | Yes | Reject/accept policy for incoming messages that pass/fail DKIM and/or SPF message authentication |
ARC | Roadmap | Signed message authentication results from forwarding server |
DANE | Yes | Verification of TLS certificates through DNSSEC-protected DNS records |
MTA-STS | Yes | PKIX-based protection of TLS certificates and MX records |
TLS Reporting | Yes | Reporting about TLS interoperability issues |
ARF | Roadmap | Abuse reporting format |
IMAP | Yes | Email access protocol |
Sieve | Roadmap | Scripts to run on incoming messages |
JMAP | Roadmap | HTTP/JSON-based email access protocol |
CalDAV/iCal | Roadmap | Calendaring |
CardDAV/vCard | Roadmap | Contacts |
SASL | Yes | Authentication mechanisms |
Internationalization | Yes | Internationalization of domain names. |
TLS | Yes | TLS, for encrypted and authenticated communication. |
ACME | Yes | Automatically manage PKIX TLS certificates |
CAA | Yes | CAA DNS reords specify which certificate authorities (CAs) are allowed to sign certificates for a domain. |
HTTP | Yes | HTTP for webservers. Required for automatic account configuration and MTA-STS. Also relevant for the built-in webserver. |
RFCs #
The mox source code is quite heavily annotated with references to the RFCs. This makes the implementation more maintainable, and makes it easier for new developers to make changes. See cross-referenced code and RFCs to navigate RFCs and source code side by side.
Implementation status per RFC, grouped by topic.
Statuses
Yes | All/most of the functionality of the RFC has been implemented. |
Partial | Some of the functionality from the RFC has been implemented. |
Roadmap | Implementing functionality from the RFC is on the roadmap. |
No | Functionality from the RFC has not been implemented, is not currently on the roadmap, but may be in the future. |
? | Status undecided, unknown or not applicable. |
RFC # | Status | Title |
---|---|---|
Internet Message Format # | ||
822 | Yes | Obsolete: Standard for ARPA Internet Text Messages |
1847 | No | Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted |
2045 | Yes | Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies |
2046 | Yes | Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types |
2047 | Yes | MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text |
2183 | Yes | Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field |
2231 | Yes | MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations |
3676 | No | The Text/Plain Format and DelSp Parameters |
5322 | Yes | Internet Message Format |
9228 | Yes | Delivered-To Email Header Field |
SMTP # | ||
821 | Yes | Obsolete: (RFC 2821) SIMPLE MAIL TRANSFER PROTOCOL |
2821 | Yes | Obsolete: (RFC 5321) Simple Mail Transfer Protocol |
5321 | Yes | Simple Mail Transfer Protocol |
1870 | Yes | SMTP Service Extension for Message Size Declaration |
1985 | No | SMTP Service Extension for Remote Message Queue Starting |
2034 | Yes | SMTP Service Extension for Returning Enhanced Error Codes |
2852 | No | Deliver By SMTP Service Extension |
2920 | Yes | SMTP Service Extension for Command Pipelining |
3207 | Yes | SMTP Service Extension for Secure SMTP over Transport Layer Security (STARTTLS) |
3030 | Roadmap | SMTP Service Extensions for Transmission of Large and Binary MIME Messages |
3461 | Roadmap | Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications (DSNs) |
3463 | Yes | Enhanced Mail System Status Codes |
3464 | Yes | An Extensible Message Format for Delivery Status Notifications |
3798 | ? | Obsolete: (RFC 8098) Message Disposition Notification |
3865 | No | A No Soliciting Simple Mail Transfer Protocol (SMTP) Service Extension |
3885 | No | SMTP Service Extension for Message Tracking |
4468 | Roadmap | Message Submission BURL Extension |
4865 | Yes | SMTP Submission Service Extension for Future Message Release |
4954 | Yes | SMTP Service Extension for Authentication |
5782 | Yes | DNS Blacklists and Whitelists |
6008 | Yes | Authentication-Results Registration for Differentiating among Cryptographic Results |
6152 | Yes | SMTP Service Extension for 8-bit MIME Transport |
6409 | Yes | Message Submission for Mail |
6522 | Yes | The Multipart/Report Media Type for the Reporting of Mail System Administrative Messages |
6530 | Yes | Overview and Framework for Internationalized Email |
6531 | Yes | SMTP Extension for Internationalized Email |
6532 | Yes | Internationalized Email Headers |
6533 | Yes | Internationalized Delivery Status and Disposition Notifications |
6647 | Partial | Email Greylisting: An Applicability Statement for SMTP |
6710 | No | Simple Mail Transfer Protocol Extension for Message Transfer Priorities |
6729 | No | Indicating Email Handling States in Trace Fields |
6857 | No | Post-Delivery Message Downgrading for Internationalized Email Messages |
7293 | No | The Require-Recipient-Valid-Since Header Field and SMTP Service Extension |
7372 | Yes | Email Authentication Status Codes |
7435 | Yes | Opportunistic Security: Some Protection Most of the Time |
7504 | Yes | SMTP 521 and 556 Reply Codes |
7505 | Yes | A "Null MX" No Service Resource Record for Domains That Accept No Mail |
8098 | ? | Message Disposition Notification |
8601 | Yes | Message Header Field for Indicating Message Authentication Status |
8689 | Yes | SMTP Require TLS Option |
8904 | No | DNS Whitelist (DNSWL) Email Authentication Method Extension |
9422 | Yes | The LIMITS SMTP Service Extension |
SPF # | ||
4408 | Yes | Obsolete: (by RFC 7208) Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1 |
6652 | ? | Sender Policy Framework (SPF) Authentication Failure Reporting Using the Abuse Reporting Format |
7208 | Yes | Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1 |
DKIM # | ||
6376 | Yes | DomainKeys Identified Mail (DKIM) Signatures |
4871 | Yes | Obsolete: (RFC 6376) DomainKeys Identified Mail (DKIM) Signatures |
6377 | ? | DomainKeys Identified Mail (DKIM) and Mailing Lists |
8301 | Yes | Cryptographic Algorithm and Key Usage Update to DomainKeys Identified Mail (DKIM) |
8463 | Yes | A New Cryptographic Signature Method for DomainKeys Identified Mail (DKIM) |
DMARC # | ||
7489 | Yes | Domain-based Message Authentication, Reporting, and Conformance (DMARC) |
7960 | Yes | Interoperability Issues between Domain-based Message Authentication, Reporting, and Conformance (DMARC) and Indirect Email Flows |
9091 | Roadmap | Experimental Domain-Based Message Authentication, Reporting, and Conformance (DMARC) Extension for Public Suffix Domains |
ARC # | ||
8617 | Roadmap | The Authenticated Received Chain (ARC) Protocol |
DANE # | ||
6698 | Yes | The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA |
7672 | Yes | SMTP Security via Opportunistic DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) |
7673 | Roadmap | Using DNS-Based Authentication of Named Entities (DANE) TLSA Records with SRV Records |
7929 | No | DNS-Based Authentication of Named Entities (DANE) Bindings for OpenPGP |
8162 | No | Using Secure DNS to Associate Certificates with Domain Names for S/MIME |
MTA-STS # | ||
8461 | Yes | SMTP MTA Strict Transport Security (MTA-STS) |
TLS Reporting # | ||
8460 | Yes | SMTP TLS Reporting |
ARF # | ||
5965 | Roadmap | An Extensible Format for Email Feedback Reports |
6650 | Roadmap | Creation and Use of Email Feedback Reports: An Applicability Statement for the Abuse Reporting Format (ARF) |
6591 | ? | Authentication Failure Reporting Using the Abuse Reporting Format |
6692 | Roadmap | Source Ports in Abuse Reporting Format (ARF) Reports |
9477 | Roadmap | Complaint Feedback Loop Address Header |
IMAP # | ||
1730 | Yes | Obsolete: (RFC 2060) INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4 |
2060 | Yes | Obsolete: (RFC 3501) INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1 |
3501 | Yes | Obsolete: (RFC 9051) INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1 |
9051 | Yes | Internet Message Access Protocol (IMAP) - Version 4rev2 |
2087 | Roadmap | IMAP4 QUOTA extension |
2152 | Yes | UTF-7 A Mail-Safe Transformation Format of Unicode |
2177 | Yes | IMAP4 IDLE command |
2180 | Yes | IMAP4 Multi-Accessed Mailbox Practice |
2193 | No | IMAP4 Mailbox Referrals |
2342 | Yes | IMAP4 Namespace |
2683 | Yes | IMAP4 Implementation Recommendations |
2971 | Yes | IMAP4 ID extension |
3348 | Yes | Obsolete: (RFC 5258) The Internet Message Action Protocol (IMAP4) Child Mailbox Extension |
3502 | Roadmap | Internet Message Access Protocol (IMAP) - MULTIAPPEND Extension |
3503 | ? | Message Disposition Notification (MDN) profile for Internet Message Access Protocol (IMAP) |
3516 | Yes | IMAP4 Binary Content Extension |
3691 | Yes | Internet Message Access Protocol (IMAP) UNSELECT command |
4314 | Roadmap | IMAP4 Access Control List (ACL) Extension |
4315 | Yes | Internet Message Access Protocol (IMAP) - UIDPLUS extension |
4467 | Roadmap | Internet Message Access Protocol (IMAP) - URLAUTH Extension |
4469 | Roadmap | Internet Message Access Protocol (IMAP) CATENATE Extension |
4551 | Yes | Obsolete: (RFC 7162) IMAP Extension for Conditional STORE Operation or Quick Flag Changes Resynchronization |
4731 | Yes | IMAP4 Extension to SEARCH Command for Controlling What Kind of Information Is Returned |
4959 | Yes | IMAP Extension for Simple Authentication and Security Layer (SASL) Initial Client Response |
4978 | Roadmap | The IMAP COMPRESS Extension |
5032 | Roadmap | WITHIN Search Extension to the IMAP Protocol |
5092 | Roadmap | IMAP URL Scheme |
5161 | Yes | The IMAP ENABLE Extension |
5162 | Yes | Obsolete: (RFC 7162) IMAP4 Extensions for Quick Mailbox Resynchronization |
5182 | Yes | IMAP Extension for Referencing the Last SEARCH Result |
5255 | No | Internet Message Access Protocol Internationalization |
5256 | Roadmap | Internet Message Access Protocol - SORT and THREAD Extensions |
5257 | No | Internet Message Access Protocol - ANNOTATE Extension |
5258 | Yes | Internet Message Access Protocol version 4 - LIST Command Extensions |
5259 | No | Internet Message Access Protocol - CONVERT Extension |
5267 | Roadmap | Contexts for IMAP4 |
5464 | Roadmap | The IMAP METADATA Extension |
5465 | Roadmap | The IMAP NOTIFY Extension |
5466 | Roadmap | IMAP4 Extension for Named Searches (Filters) |
5524 | No | Extended URLFETCH for Binary and Converted Parts |
5530 | Yes | IMAP Response Codes |
5738 | Partial | Obsolete: (RFC 6855) IMAP Support for UTF-8 |
5819 | Yes | IMAP4 Extension for Returning STATUS Information in Extended LIST |
5957 | Roadmap | Display-Based Address Sorting for the IMAP4 SORT Extension |
6154 | Yes | IMAP LIST Extension for Special-Use Mailboxes |
6203 | No | IMAP4 Extension for Fuzzy Search |
6237 | Roadmap | Obsolete: (RFC 7377) IMAP4 Multimailbox SEARCH Extension |
6851 | Yes | Internet Message Access Protocol (IMAP) - MOVE Extension |
6855 | Yes | IMAP Support for UTF-8 |
6858 | No | Simplified POP and IMAP Downgrading for Internationalized Email |
7162 | Yes | IMAP Extensions: Quick Flag Changes Resynchronization (CONDSTORE) and Quick Mailbox Resynchronization (QRESYNC) |
7377 | Roadmap | IMAP4 Multimailbox SEARCH Extension |
7888 | Yes | IMAP4 Non-synchronizing Literals |
7889 | Yes | The IMAP APPENDLIMIT Extension |
8437 | Roadmap | IMAP UNAUTHENTICATE Extension for Connection Reuse |
8438 | Yes | IMAP Extension for STATUS=SIZE |
8440 | ? | IMAP4 Extension for Returning MYRIGHTS Information in Extended LIST |
8457 | Roadmap | IMAP "$Important" Keyword and "\Important" Special-Use Attribute |
8474 | Roadmap | IMAP Extension for Object Identifiers |
8508 | Roadmap | IMAP REPLACE Extension |
8514 | Roadmap | Internet Message Access Protocol (IMAP) - SAVEDATE Extension |
8970 | Roadmap | IMAP4 Extension: Message Preview Generation |
9208 | Partial | IMAP QUOTA Extension |
9394 | Roadmap | IMAP PARTIAL Extension for Paged SEARCH and FETCH |
Mailing list and automated responses # | ||
2369 | ? | The Use of URLs as Meta-Syntax for Core Mail List Commands and their Transport through Message Header Fields |
2919 | ? | List-Id: A Structured Field and Namespace for the Identification of Mailing Lists |
3834 | ? | Recommendations for Automatic Responses to Electronic Mail |
8058 | ? | Signaling One-Click Functionality for List Email Headers |
Sieve # | ||
3028 | Roadmap | Obsolete: (RFC 5228) Sieve: A Mail Filtering Language |
5228 | Roadmap | Sieve: An Email Filtering Language |
5804 | Roadmap | A Protocol for Remotely Managing Sieve Scripts |
3894 | No | Sieve Extension: Copying Without Side Effects |
5173 | No | Sieve Email Filtering: Body Extension |
5183 | Roadmap | Sieve Email Filtering: Environment Extension |
5229 | Roadmap | Sieve Email Filtering: Variables Extension |
5230 | Roadmap | Sieve Email Filtering: Vacation Extension |
5231 | Roadmap | Sieve Email Filtering: Relational Extension |
5232 | Roadmap | Sieve Email Filtering: Imap4flags Extension |
5233 | Roadmap | Sieve Email Filtering: Subaddress Extension |
5235 | No | Sieve Email Filtering: Spamtest and Virustest Extensions |
5260 | No | Sieve Email Filtering: Date and Index Extensions |
5293 | No | Sieve Email Filtering: Editheader Extension |
5429 | Roadmap | Sieve Email Filtering: Reject and Extended Reject Extensions |
5435 | No | Sieve Email Filtering: Extension for Notifications |
5437 | No | Sieve Notification Mechanism: Extensible Messaging and Presence Protocol (XMPP) |
5463 | Roadmap | Sieve Email Filtering: Ihave Extension |
5490 | No | The Sieve Mail-Filtering Language -- Extensions for Checking Mailbox Status and Accessing Mailbox Metadata |
5703 | No | Sieve Email Filtering: MIME Part Tests, Iteration, Extraction, Replacement, and Enclosure |
5784 | No | Sieve Email Filtering: Sieves and Display Directives in XML |
6131 | ? | Sieve Vacation Extension: "Seconds" Parameter |
6558 | No | Sieve Extension for Converting Messages before Delivery |
6609 | No | Sieve Email Filtering: Include Extension |
6785 | Roadmap | Support for Internet Message Access Protocol (IMAP) Events in Sieve |
8579 | Roadmap | Sieve Email Filtering: Delivering to Special-Use Mailboxes |
8580 | No | Sieve Extension: File Carbon Copy (FCC) |
9042 | No | Sieve Email Filtering: Delivery by MAILBOXID |
3431 | Roadmap | Obsolete: (RFC 5231) Relational Extension |
3598 | Roadmap | Obsolete: (RFC 5233) Subaddress Extension |
3685 | No | Obsolete: (RFC 5235) Spamtest and VirusTest Extensions |
JMAP # | ||
8620 | Roadmap | The JSON Meta Application Protocol (JMAP) |
8621 | Roadmap | The JSON Meta Application Protocol (JMAP) for Mail |
8887 | Roadmap | A JSON Meta Application Protocol (JMAP) Subprotocol for WebSocket |
9007 | ? | Handling Message Disposition Notification with the JSON Meta Application Protocol (JMAP) |
9219 | No | S/MIME Signature Verification Extension to the JSON Meta Application Protocol (JMAP) |
9425 | No | JSON Meta Application Protocol (JMAP) for Quotas |
CalDAV/iCal # | ||
4791 | Roadmap | Calendaring Extensions to WebDAV (CalDAV) |
5689 | Roadmap | Extended MKCOL for Web Distributed Authoring and Versioning (WebDAV) |
6638 | Roadmap | Scheduling Extensions to CalDAV |
6764 | Roadmap | Locating Services for Calendaring Extensions to WebDAV (CalDAV) and vCard Extensions to WebDAV (CardDAV) |
7809 | Roadmap | Calendaring Extensions to WebDAV (CalDAV): Time Zones by Reference |
7953 | Roadmap | Calendar Availability |
5545 | Roadmap | Internet Calendaring and Scheduling Core Object Specification (iCalendar) |
5546 | Roadmap | iCalendar Transport-Independent Interoperability Protocol (iTIP) |
6047 | Roadmap | iCalendar Message-Based Interoperability Protocol (iMIP) |
6868 | Roadmap | Parameter Value Encoding in iCalendar and vCard |
7529 | ? | Non-Gregorian Recurrence Rules in the Internet Calendaring and Scheduling Core Object Specification (iCalendar) |
7986 | ? | New Properties for iCalendar |
9073 | ? | Event Publishing Extensions to iCalendar |
9074 | ? | "VALARM" Extensions for iCalendar |
9253 | ? | Support for iCalendar Relationships |
6321 | ? | xCal: The XML Format for iCalendar |
7265 | ? | jCal: The JSON Format for iCalendar |
CardDAV/vCard # | ||
6352 | Roadmap | CardDAV: vCard Extensions to Web Distributed Authoring and Versioning (WebDAV) |
2425 | Roadmap | A MIME Content-Type for Directory Information |
2426 | ? | vCard MIME Directory Profile |
6350 | Roadmap | vCard Format Specification |
6351 | ? | xCard: vCard XML Representation |
6473 | ? | vCard KIND:application |
6474 | ? | vCard Format Extensions: Place of Birth, Place and Date of Death |
6715 | ? | vCard Format Extensions: Representing vCard Extensions Defined by the Open Mobile Alliance (OMA) Converged Address Book (CAB) Group |
6869 | ? | vCard KIND:device |
7095 | ? | jCard: The JSON Format for vCard |
WebDAV # | ||
4918 | Roadmap | HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV) |
3253 | ? | Versioning Extensions to WebDAV (Web Distributed Authoring and Versioning) |
3648 | ? | Web Distributed Authoring and Versioning (WebDAV) Ordered Collections Protocol |
3744 | ? | Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol |
4437 | ? | Web Distributed Authoring and Versioning (WebDAV) Redirect Reference Resources |
5323 | ? | Web Distributed Authoring and Versioning (WebDAV) SEARCH |
6578 | ? | Collection Synchronization for Web Distributed Authoring and Versioning (WebDAV) |
SASL # | ||
2195 | Yes | IMAP/POP AUTHorize Extension for Simple Challenge/Response |
4013 | Yes | Obsolete: (RFC 7613) SASLprep: Stringprep Profile for User Names and Passwords |
4422 | Yes | Simple Authentication and Security Layer (SASL) |
4505 | No | Anonymous Simple Authentication and Security Layer (SASL) Mechanism |
4616 | Yes | The PLAIN Simple Authentication and Security Layer (SASL) Mechanism |
5802 | Yes | Salted Challenge Response Authentication Mechanism (SCRAM) SASL and GSS-API Mechanisms |
7613 | Yes | Obsolete: (RFC 8265) Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords |
7677 | Yes | SCRAM-SHA-256 and SCRAM-SHA-256-PLUS Simple Authentication and Security Layer (SASL) Mechanisms |
8265 | Yes | Preparation, Enforcement, and Comparison of Internationalized Strings Representing Usernames and Passwords |
Internationalization # | ||
3492 | Yes | Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA) |
5890 | Yes | Internationalized Domain Names for Applications (IDNA): Definitions and Document Framework |
5891 | Yes | Internationalized Domain Names in Applications (IDNA): Protocol |
5892 | ? | The Unicode Code Points and Internationalized Domain Names for Applications (IDNA) |
5893 | ? | Right-to-Left Scripts for Internationalized Domain Names for Applications (IDNA) |
5894 | ? | Internationalized Domain Names for Applications (IDNA): Background, Explanation, and Rationale |
8616 | Yes | Email Authentication for Internationalized Mail |
TLS # | ||
5056 | Yes | On the Use of Channel Bindings to Secure Channels |
5705 | Yes | Keying Material Exporters for Transport Layer Security (TLS) |
5929 | Yes | Channel Bindings for TLS |
8314 | Yes | Cleartext Considered Obsolete: Use of Transport Layer Security (TLS) for Email Submission and Access |
8446 | Yes | The Transport Layer Security (TLS) Protocol Version 1.3 |
8996 | Yes | Deprecating TLS 1.0 and TLS 1.1 |
8997 | Yes | Deprecation of TLS 1.1 for Email Submission and Access |
9266 | Yes | Channel Bindings for TLS 1.3 |
ACME # | ||
8555 | Yes | Automatic Certificate Management Environment (ACME) |
8737 | Yes | Automated Certificate Management Environment (ACME) TLS Application-Layer Protocol Negotiation (ALPN) Challenge Extension |
CAA # | ||
8659 | Yes | DNS Certification Authority Authorization (CAA) Resource Record |
8657 | Yes | Certification Authority Authorization (CAA) Record Extensions for Account URI and Automatic Certificate Management Environment (ACME) Method Binding |
HTTP # | ||
2616 | Yes | Obsolete: (RFC 7230) Hypertext Transfer Protocol -- HTTP/1.1 |
6455 | Yes | The WebSocket Protocol |
7230 | Yes | Obsolete: (RFC 9110) Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing |
9110 | Yes | HTTP Semantics |