RFCs
Stalwart implements a large number of internet standards, and this page lists them for developers and administrators who need to know whether a particular specification is supported. The list covers both published RFCs and Internet-Drafts, the working documents that may later become RFCs, grouped by protocol. The JMAP capabilities that correspond to these specifications are listed separately, in JMAP capabilities.
Message Store
Section titled “Message Store”- RFC 8620 - The JSON Meta Application Protocol (JMAP)
- RFC 8887 - A JSON Meta Application Protocol (JMAP) Subprotocol for WebSocket
- RFC 9404 - JSON Meta Application Protocol (JMAP) Blob Management Extension
- RFC 9425 - JSON Meta Application Protocol (JMAP) for Quotas
- RFC 8621 - The JSON Meta Application Protocol (JMAP) for Mail
- RFC 9661 - JMAP for Sieve Scripts
- RFC 9749 - Use of Voluntary Application Server Identification (VAPID) in JMAP Web Push
- draft-ietf-jmap-metadata - JMAP Object Metadata
- draft-ietf-jmap-mail-sharing - JMAP Mail Sharing
- RFC 9051 - Internet Message Access Protocol (IMAP) - Version 4rev2
- RFC 3501 - Internet Message Access Protocol (IMAP) - Version 4rev1
- RFC 2180 - Multi-Accessed Mailbox Practice
- RFC 2683 - Implementation Recommendations
- RFC 8314 - Use of Transport Layer Security (TLS) for Email Submission and Access
- RFC 2177 - IDLE command
- RFC 2342 - Namespace
- RFC 2971 - ID extension
- RFC 3348 - Child Mailbox Extension
- RFC 3502 - MULTIAPPEND Extension
- RFC 3516 - Binary Content Extension
- RFC 3691 - UNSELECT command
- RFC 4314 - Access Control List (ACL) Extension
- RFC 4315 - UIDPLUS extension
- RFC 4466 - Collected Extensions to IMAP4 ABNF
- RFC 4731 - SEARCH Command for Controlling What Kind of Information Is Returned
- RFC 4959 - Simple Authentication and Security Layer (SASL) Initial Client Response
- RFC 5464 - The IMAP METADATA Extension
- RFC 5032 - WITHIN Search Extension to the IMAP Protocol
- RFC 5161 - ENABLE Extension
- RFC 5182 - Extension for Referencing the Last SEARCH Result
- RFC 5256 - SORT and THREAD Extensions
- RFC 5258 - LIST Command Extensions
- RFC 5267 - Contexts for IMAP4 (ESORT and CONTEXT)
- RFC 5530 - Response Codes
- RFC 5819 - STATUS Information in Extended LIST
- RFC 5957 - Display-Based Address Sorting for the IMAP4 SORT Extension
- RFC 6154 - LIST Extension for Special-Use Mailboxes
- RFC 6851 - MOVE Extension
- RFC 6855 - Support for UTF-8
- RFC 7162 - Quick Flag Changes Resynchronization (CONDSTORE) and Quick Mailbox Resynchronization (QRESYNC)
- RFC 7628 - SASL Mechanisms for OAuth
- RFC 7888 - Non-synchronizing Literals
- RFC 8437 - UNAUTHENTICATE Extension for Connection Reuse
- RFC 8438 - Extension for STATUS=SIZE
- RFC 8457 - “$Important” Keyword and “\Important” Special-Use Attribute
- RFC 8970 - Message Preview Generation
- RFC 9208 - IMAP QUOTA Extension
- RFC 9586 - IMAP Extension for Using and Returning Unique Identifiers (UIDs) Only
- RFC 9590 - IMAP Extension for Returning Mailbox METADATA in Extended LIST
- RFC 9698 - The JMAPACCESS Extension for IMAP
- RFC 9738 - IMAP MESSAGELIMIT Extension
- RFC 9979 - Registration of further IMAP/JMAP keywords and mailbox name attributes
- RFC 10022 - IMAP UIDBATCHES Extension
- draft-ietf-mailmaint-imap-objectid-bis - IMAP Extension for Object Identifiers
- RFC 1939 - Post Office Protocol - Version 3
- RFC 2449 - POP3 Extension Mechanism
- RFC 5034 - POP3 SASL Authentication Mechanism
- RFC 6856 - Post Office Protocol Version 3 (POP3) Support for UTF-8
- RFC 2595 - Using TLS with IMAP, POP3 and ACAP
- RFC 3206 - The SYS and AUTH POP Response Codes
Message Format
Section titled “Message Format”- RFC 822 - Standard for ARPA Internet Text Messages
- RFC 5322 - Internet Message Format
- RFC 2045 - Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
- RFC 2046 - Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types
- RFC 2047 - MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text
- RFC 2048 - Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures
- RFC 2049 - Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples
- RFC 2231 - MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations
- RFC 2557 - MIME Encapsulation of Aggregate Documents, such as HTML (MHTML)
- RFC 2183 - Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field
- RFC 2392 - Content-ID and Message-ID Uniform Resource Locators
- RFC 3282 - Content Language Headers
- RFC 6532 - Internationalized Email Headers
- RFC 2152 - UTF-7 - A Mail-Safe Transformation Format of Unicode
- RFC 2369 - The Use of URLs as Meta-Syntax for Core Mail List Commands and their Transport through Message Header Fields
- RFC 2919 - List-Id: A Structured Field and Namespace for the Identification of Mailing Lists
- RFC 3339 - Date and Time on the Internet: Timestamps
Message Encryption
Section titled “Message Encryption”- RFC 8551 - Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 4.0 Message Specification
- RFC 4880 - OpenPGP Message Format
- RFC 3156 - MIME Security with OpenPGP
- RFC 9580 - OpenPGP
- RFC 5083 - Cryptographic Message Syntax (CMS) Authenticated-Enveloped-Data Content Type
- RFC 5228 - Sieve: An Email Filtering Language
- RFC 5804 - A Protocol for Remotely Managing Sieve Scripts
- RFC 3894 - Copying Without Side Effects
- RFC 5173 - Body Extension
- RFC 5183 - Environment Extension
- RFC 5229 - Variables Extension
- RFC 5230 - Vacation Extension
- RFC 5231 - Relational Extension
- RFC 5232 - Imap4flags Extension
- RFC 5233 - Subaddress Extension
- RFC 5235 - Spamtest and Virustest Extensions
- RFC 5260 - Date and Index Extensions
- RFC 5293 - Editheader Extension
- RFC 5429 - Reject and Extended Reject Extensions
- RFC 5435 - Extension for Notifications
- RFC 5463 - Ihave Extension
- RFC 5490 - Extensions for Checking Mailbox Status and Accessing Mailbox Metadata
- RFC 5703 - MIME Part Tests, Iteration, Extraction, Replacement, and Enclosure
- RFC 6009 - Delivery Status Notifications and Deliver-By Extensions
- RFC 6131 - Sieve Vacation Extension: “Seconds” Parameter
- RFC 6134 - Externally Stored Lists
- RFC 6558 - Converting Messages before Delivery
- RFC 6609 - Include Extension
- RFC 7352 - Detecting Duplicate Deliveries
- RFC 8579 - Delivering to Special-Use Mailboxes
- RFC 8580 - File Carbon Copy (FCC)
- RFC 9042 - Delivery by MAILBOXID
- draft-ietf-sieve-regex - Regular Expression Extension
- RFC 5321 - Simple Mail Transfer Protocol
- RFC 5321bis - Simple Mail Transfer Protocol
- RFC 2033 - Local Mail Transfer Protocol
- RFC 6152 - SMTP Service Extension for 8-bit MIME Transport
- RFC 1870 - SMTP Service Extension for Message Size Declaration
- RFC 3030 - SMTP Service Extensions for Transmission of Large and Binary MIME Messages
- RFC 2852 - Deliver By SMTP Service Extension
- RFC 2920 - SMTP Service Extension for Command Pipelining
- RFC 3461 - Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications (DSNs)
- RFC 2034 - SMTP Service Extension for Returning Enhanced Error Codes
- RFC 3207 - SMTP Service Extension for Secure SMTP over Transport Layer Security
- RFC 3865 - A No Soliciting Simple Mail Transfer Protocol (SMTP) Service Extension
- RFC 4954 - SMTP Service Extension for Authentication
- RFC 4865 - SMTP Submission Service Extension for Future Message Release
- RFC 6531 - SMTP Extension for Internationalized Email
- RFC 6710 - Simple Mail Transfer Protocol Extension for Message Transfer Priorities
- RFC 8689 - SMTP Require TLS Option
- RFC 2831 - Using Digest Authentication as a SASL Mechanism
- RFC 6376 - DomainKeys Identified Mail (DKIM) Signatures
- 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)
- DKIM2 - draft-ietf-dkim-dkim2-spec - DKIM2 Signatures
- DKIM2 - draft-ietf-dkim-dkim2-dns - DKIM2 DNS Records
- DKIM2 - draft-ietf-lamps-pq-composite-sigs - Composite Module-Lattice-Based Digital Signature Algorithm (ML-DSA) for use in X.509 Public Key Infrastructure
- RFC 6541 - DomainKeys Identified Mail (DKIM) Authorized Third-Party Signatures
- RFC 6651 - Extensions to DomainKeys Identified Mail (DKIM) for Failure Reporting
- RFC 8032 - Edwards-Curve Digital Signature Algorithm (EdDSA)
- RFC 4686 - Analysis of Threats Motivating DomainKeys Identified Mail (DKIM)
- RFC 5016 - Requirements for a DomainKeys Identified Mail (DKIM) Signing Practices Protocol
- RFC 5585 - DomainKeys Identified Mail (DKIM) Service Overview
- RFC 5672 - DomainKeys Identified Mail (DKIM) Signatures — Update
- RFC 5863 - DomainKeys Identified Mail (DKIM) Development, Deployment, and Operations
- RFC 6377 - DomainKeys Identified Mail (DKIM) and Mailing Lists
- RFC 7208 - Sender Policy Framework (SPF)
- RFC 6652 - Sender Policy Framework (SPF) Authentication Failure Reporting Using the Abuse Reporting Format
- RFC 9989 - Domain-based Message Authentication, Reporting, and Conformance (DMARC)
- RFC 9990 - DMARC Aggregate Reporting
- RFC 9991 - DMARC Failure Reporting
- RFC 8601 - Message Header Field for Indicating Message Authentication Status
- RFC 8616 - Email Authentication for Internationalized Mail
- RFC 7960 - Interoperability Issues between Domain-based Message Authentication, Reporting, and Conformance (DMARC) and Indirect Email Flows
Transport Security
Section titled “Transport Security”- RFC 6698 - The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA
- RFC 7671 - The DNS-Based Authentication of Named Entities (DANE) Protocol: Updates and Operational Guidance
- 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)
- RFC 2308 - Negative Caching of DNS Queries (DNS NCACHE)
- RFC 2136 - Dynamic Updates in the Domain Name System (DNS UPDATE)
Reporting
Section titled “Reporting”- RFC 5965 - An Extensible Format for Email Feedback Reports
- RFC 6430 - Email Feedback Report Type Value: not-spam
- RFC 6590 - Redaction of Potentially Sensitive Data from Mail Abuse Reports
- RFC 6591 - Authentication Failure Reporting Using the Abuse Reporting Format
- RFC 6650 - Creation and Use of Email Feedback Reports: An Applicability Statement for the Abuse Reporting Format (ARF)
- RFC 8460 - SMTP TLS Reporting
Collaboration
Section titled “Collaboration”Calendars
Section titled “Calendars”- RFC 5545 - Internet Calendaring and Scheduling Core Object Specification (iCalendar)
- RFC 5546 - iCalendar Transport-Independent Interoperability Protocol (iTIP)
- RFC 6047 - iCalendar Message-Based Interoperability Protocol (iMIP)
- RFC 7953 - Calendar Availability
- RFC 9073 - Event Publishing Extensions to iCalendar
- RFC 7808 - Time Zone Data Distribution Service
- RFC 7986 - New Properties for iCalendar
- RFC 9074 - “VALARM” Extensions for iCalendar
- RFC 9253 - Support for iCalendar Relationships
- RFC 6868 - Parameter Value Encoding in iCalendar and vCard
- RFC 7529 - Non-Gregorian Recurrence Rules in the Internet Calendaring and Scheduling Core Object Specification (iCalendar)
- draft-ietf-calext-jscalendarbis - JSCalendar: A JSON Representation of Calendar Data
- draft-ietf-calext-jscalendar-icalendar - JSCalendar: Converting from and to iCalendar
- draft-ietf-calext-icalendar-jscalendar-extensions - iCalendar Format Extensions for JSCalendar
- draft-ietf-calext-ical-tasks - Task Extensions to iCalendar
Contacts
Section titled “Contacts”- RFC 2425 - A MIME Content-Type for Directory Information
- RFC 2426 - vCard MIME Directory Profile
- RFC 6350 - vCard Format Specification
- RFC 6474 - vCard Format Extensions: Place of Birth, Place and Date of Death
- RFC 6715 - vCard Format Extensions: Representing vCard Extensions Defined by the Open Mobile Alliance (OMA) Converged Address Book (CAB) Group
- RFC 8605 - vCard Format Extensions: ICANN Extensions for the Registration Data Access Protocol (RDAP)
- RFC 9554 - vCard Format Extensions for JSContact
- RFC 9555 - JSContact: Converting from and to vCard
- RFC 6473 - vCard KIND:application
- RFC 6869 - vCard KIND:device
- RFC 7852 - Additional Data Related to an Emergency Call
- RFC 9553 - JSContact: A JSON Representation of Contact Data
- draft-ietf-jmap-calendars - JMAP for Calendars
- RFC 9610 - JMAP for Contacts
- draft-ietf-jmap-filenode - JMAP for File Storage
- RFC 9670 - JMAP Sharing
Supporting Specifications
Section titled “Supporting Specifications”The calendaring and contact formats above rely on the following normative references:
- RFC 2397 - The “data” URL scheme
- RFC 4122 - A Universally Unique IDentifier (UUID) URN Namespace
- RFC 5870 - A Uniform Resource Identifier for Geographic Locations (‘geo’ URI)
- RFC 6901 - JavaScript Object Notation (JSON) Pointer
- RFC 7396 - JSON Merge Patch
- RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format
- RFC 8288 - Web Linking
WebDAV
Section titled “WebDAV”- RFC 4918 - HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)
- RFC 5689 - Extended MKCOL for Web Distributed Authoring and Versioning (WebDAV)
- RFC 6578 - Collection Synchronization for Web Distributed Authoring and Versioning (WebDAV)
- RFC 3744 - Web Distributed Authoring and Versioning (WebDAV) Access Control Protocol
- RFC 4331 - Quota and Size Properties for Distributed Authoring and Versioning (DAV) Collections
- RFC 5397 - WebDAV Current Principal Extension
- RFC 8144 - Use of the Prefer Header Field in Web Distributed Authoring and Versioning (WebDAV)
- RFC 7233 - Hypertext Transfer Protocol (HTTP/1.1): Range Requests
- RFC 4791 - Calendaring Extensions to WebDAV (CalDAV)
- RFC 7809 - Calendaring Extensions to WebDAV (CalDAV) Time Zones by Reference
- RFC 6638 - Scheduling Extensions to CalDAV
- RFC 6352 - CardDAV vCard Extensions to Web Distributed Authoring and Versioning (WebDAV)
- RFC 6764 - Locating Services for Calendaring Extensions to WebDAV (CalDAV) and vCard Extensions to WebDAV (CardDAV)
- RFC 7642 - System for Cross-domain Identity Management: Definitions, Overview, Concepts, and Requirements
- RFC 7643 - System for Cross-domain Identity Management: Core Schema
- RFC 7644 - System for Cross-domain Identity Management: Protocol
- RFC 9865 - Cursor-Based Pagination for the System for Cross-domain Identity Management (SCIM)
- draft-zollner-scim-interop-profile - SCIM Interoperability Profile
- draft-schreiber-scim-ipsie-profile - SCIM Profile for IPSIE Lifecycle Management
WebSocket
Section titled “WebSocket”- RFC 6455 - The WebSocket Protocol
- RFC 8307 - Well-Known URIs for the WebSocket Protocol
- RFC 8441 - Bootstrapping WebSockets with HTTP/2
HTTP Push
Section titled “HTTP Push”- RFC 5116 - An Interface and Algorithms for Authenticated Encryption (AEAD_AES_128_GCM)
- RFC 8030 - Generic Event Delivery Using HTTP Push
- RFC 8188 - Encrypted Content-Encoding for HTTP
- RFC 8291 - Message Encryption for Web Push
Mail Autoconfig
Section titled “Mail Autoconfig”- RFC 8555 - Automatic Certificate Management Environment (ACME)
- RFC 8737 - Automated Certificate Management Environment (ACME) TLS Application-Layer Protocol Negotiation (ALPN) Challenge Extension
- RFC 8659 - DNS Certification Authority Authorization (CAA) Resource Record
- RFC 8657 - Certification Authority Authorization (CAA) Record Extensions for Account URI and Automatic Certificate Management Environment (ACME) Method Binding
- draft-ietf-acme-dns-persist - ACME Challenge for Persistent DNS TXT Record Validation (dns-persist-01)
OpenID & OAuth
Section titled “OpenID & OAuth”- RFC 6749 - The OAuth 2.0 Authorization Framework
- RFC 6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage
- RFC 7009 - OAuth 2.0 Token Revocation
- RFC 7636 - Proof Key for Code Exchange by OAuth Public Clients (PKCE)
- RFC 8252 - OAuth 2.0 for Native Apps
- RFC 8414 - OAuth 2.0 Authorization Server Metadata
- RFC 8628 - OAuth 2.0 Device Authorization Grant
- RFC 7591 - OAuth 2.0 Dynamic Client Registration Protocol
- RFC 7662 - OAuth 2.0 Token Introspection
- RFC 7517 - JSON Web Key (JWK)
- RFC 7628 - A Set of Simple Authentication and Security Layer (SASL) Mechanisms for OAuth
- RFC 8707 - Resource Indicators for OAuth 2.0
- RFC 9207 - OAuth 2.0 Authorization Server Issuer Identification
- RFC 9728 - OAuth 2.0 Protected Resource Metadata
- OpenID Connect Core 1.0
- OpenID Connect Discovery 1.0
- OpenID Connect Dynamic Client Registration 1.0
- draft-ietf-mailmaint-oauth-public - OAuth Profile for Open Public Clients
- draft-ietf-oauth-client-id-metadata-document - OAuth Client ID Metadata Document
Two-Factor Authentication
Section titled “Two-Factor Authentication”- RFC 6238 - TOTP: Time-Based One-Time Password Algorithm
- RFC 4226 - HOTP: An HMAC-Based One-Time Password Algorithm