FOLD
Engineering · Standards

Standards kept.Gaps named.

Every protocol FOLD speaks is defined in an RFC. This page lists the ones a mail client is measured by and says, for each, what the code does today: implemented, partly implemented, open, or deliberately left out, and why.

Checked against the code on 2026-09-23

Implemented
58
Implemented and in use.
Partial
8
Part of it works; the note says which part.
Open
10
Not implemented yet.
Deliberately not
6
Deliberately not implemented; the note gives the reason.

Message format

How a message is built, read and shown.

RFCStandardStatusIn FOLD
RFC 5322Internet Message FormatImplementedStrict when writing; when reading, tolerant of bare line feeds, 8-bit headers and date variants.
RFC 2045-2049MIMEImplementedFOLD downloads the whole message and builds the MIME tree on the device.
RFC 2047MIME Encoded-WordsImplementedNon-ASCII text in headers, decoded and encoded.
RFC 2231MIME Parameter Value and Encoded Word ExtensionsPartialLong and non-ASCII file names are read; FOLD does not yet write them in this form when sending.
RFC 2183Content-DispositionImplementedInline versus attachment, and the file name.
RFC 2387multipart/relatedImplementedMessages with embedded images, read and written.
RFC 2392Content-ID and Message-ID URLsImplementedcid: links to embedded images resolve inside the message.
RFC 6532Internationalized Email HeadersImplementedUTF-8 headers are always read; FOLD writes them only for international addresses and only when the server offers SMTPUTF8 or UTF8=ACCEPT.since 2026-09-21
RFC 3676The Text/Plain Format and DelSp ParametersOpenformat=flowed text is not reflowed yet, and FOLD does not send it.
RFC 2369List Commands in Header FieldsImplementedList-Unsubscribe as an action: FOLD sends the mail request itself, web links open in the browser.
RFC 2919List-IdImplementedRecognises mailing lists, so their typical signature breaks are not shown as forgeries.
RFC 8058One-Click UnsubscribeOpenThe header is recognised, but FOLD does not send the one-click request; unsubscribing uses mail or the web page.
RFC 8098Message Disposition NotificationPartialFOLD can request a read receipt when sending, but deliberately never sends one.

Reading and syncing (IMAP)

FOLD asks the server what it supports, again after login, and switches each extension on only when the server announces it, with a fallback to the plainer way.

RFCStandardStatusIn FOLD
RFC 3501IMAP4rev1ImplementedThe baseline every server supports, including STARTTLS without a cleartext fallback.
RFC 9051IMAP4rev2Deliberately notRecognised, not enabled: no server in the target group requires it; FOLD uses the rev1 extensions instead.
RFC 2177IDLEImplementedFOLD keeps IDLE on each account's inbox and renews it every 25 minutes; other folders are polled, on iPhone and iPad only while the app is open.
RFC 4315UIDPLUSImplementedUID EXPUNGE, so FOLD only ever removes its own messages.
RFC 6851MOVEImplementedWith COPY and EXPUNGE as fallback; after a MOVE FOLD checks what stayed in the source.
RFC 7162CONDSTORE and QRESYNCImplementedIncremental sync including VANISHED (EARLIER).
RFC 5161ENABLEImplementedA switch counts only after the server confirms it with ENABLED.
RFC 6154SPECIAL-USEImplementedFolder roles come from the server's marks, common names serve only as a fallback, and missing folders are created with their role.
RFC 9208QUOTAImplementedMailbox usage shown on the Mac.
RFC 7888LITERAL+ and LITERAL-ImplementedFewer round trips when uploading.
RFC 4959SASL-IRImplementedLogin in one round trip.
RFC 5530IMAP Response CodesImplementedA wrong password and a temporarily unavailable server are told apart.
RFC 4731ESEARCHImplementedCompact results for the server search on iPhone and iPad; servers without ESEARCH get classic SEARCH.since 2026-09-21
RFC 5258LIST-EXTENDEDImplementedFolders and their roles in one command.since 2026-09-21
RFC 5819LIST-STATUSImplementedFolder counters in the same LIST, without selecting each folder.since 2026-09-21
RFC 6855UTF8=ACCEPTImplementedUTF-8 folder names and headers; switches the folder name encoding in one place.since 2026-09-21
RFC 2342NAMESPACEOpenThe capability is recognised, but the command is never sent.
RFC 2971IDOpenSome Yahoo servers want it before login.
RFC 4978COMPRESS=DEFLATEOpenDeferred: it needs a partial flush that Apple's Compression framework lacks; zlib directly is the planned way.
RFC 8474OBJECTIDOpenStable IDs across renames; not used yet.
RFC 8970PREVIEWOpenPreviews are built on the device from the loaded message.
RFC 8508REPLACEOpenDrafts are saved on the device while writing and uploaded once when the composer closes; an earlier server copy is not replaced.
RFC 3516BINARYDeliberately notNot needed: FOLD decodes the MIME tree itself.
RFC 5256SORT and THREADDeliberately notFOLD builds conversations locally from References and In-Reply-To, the same on every server.
RFC 5465NOTIFYDeliberately notHardly any server in the target group offers it.

Sending (SMTP)

How FOLD hands a message to your server.

RFCStandardStatusIn FOLD
RFC 5321Simple Mail Transfer ProtocolImplementedIncluding correct dot-stuffing.
RFC 6409Message Submission for MailImplementedAlways with login before sending, on port 587 or 465.
RFC 4954SMTP Service Extension for AuthenticationImplementedLogin with an initial response, and a clean abort when a method fails.
RFC 1870SIZEImplementedThe size is announced when the server names a limit, and a message above it is refused before upload.
RFC 2920PIPELININGImplementedSender and recipients in groups; DATA only after every envelope answer, so a message goes to all recipients or none.since 2026-09-21
RFC 61528BITMIMEImplementedDeclared when the message contains 8-bit data; without server support FOLD does not send 8-bit.since 2026-09-21
RFC 6531SMTPUTF8ImplementedInternational addresses and UTF-8 headers; if the server lacks it, FOLD stops with a clear message.since 2026-09-21
RFC 3463Enhanced Mail System Status CodesImplementedRejections are explained in plain words instead of a server code (with RFC 2034).since 2026-09-21
RFC 3461Delivery Status NotificationsOpenDelivery reports on request are not implemented.
RFC 3030CHUNKING (BDAT)Deliberately notRecognised, not used; DATA covers every case.
RFC 8689REQUIRETLSDeliberately notAlmost no server supports it yet.

Connection and sign-in

Encryption of the connection, login methods and automatic setup.

RFCStandardStatusIn FOLD
RFC 8314Cleartext Considered ObsoleteImplementedFOLD never connects without TLS and prefers implicit TLS where DNS offers both.
RFC 3207SMTP over TLS (STARTTLS)ImplementedIf the server does not offer STARTTLS, FOLD stops instead of sending in cleartext.
RFC 7817TLS Server Identity Check for EmailImplementedCertificate chain and host name are checked by the system against the configured server.
RFC 4422SASLImplementedFramework for every login method below.
RFC 7677SCRAM-SHA-256PartialPreferred for sending (SMTP), with a check of the server signature; IMAP sign-in still uses PLAIN.
RFC 4616PLAINImplementedOnly inside TLS, never in cleartext (deliberately stricter than the RFC).
RFC 6749OAuth 2.0ImplementedSign-in with Google; XOAUTH2 for IMAP and SMTP, the method the large providers use.
RFC 7636PKCEImplementedFor every OAuth sign-in, only S256; no client secret in the app.
RFC 8252OAuth 2.0 for Native AppsImplementedSign-in in the system browser, never in an embedded web view.
RFC 7628OAUTHBEAREROpenNo provider in the target group requires it; XOAUTH2 covers them.
RFC 6186SRV Records for Email Submission and AccessImplementedOne of the sources for automatic setup.

Encryption and signatures

S/MIME and OpenPGP, and the building blocks behind them.

RFCStandardStatusIn FOLD
RFC 5652Cryptographic Message SyntaxImplementedThe container format of S/MIME, own implementation on iPhone and iPad, the system's on the Mac.
RFC 8551S/MIME 4.0PartialSign, verify, encrypt and decrypt with RSA certificates and AES-CBC; AES-GCM, which S/MIME 4.0 requires, is not supported yet.
RFC 1847Security Multiparts for MIMEImplementedThe envelope of signed and encrypted mail.
RFC 3565AES in CMSImplementedAES for S/MIME encryption.
RFC 5754SHA-2 in CMSImplementedSHA-256 and stronger for S/MIME signatures.
RFC 5280X.509 CertificatesImplementedCertificate paths are checked by the system's trust evaluation; revocation checks are optional.
RFC 9580OpenPGPPartialVersion 4 keys (Ed25519, Curve25519, RSA) with AES-256 and an integrity check, tested against gpg; version 6 keys and AEAD encryption are not supported yet.
RFC 6637Elliptic Curve Cryptography in OpenPGPImplementedCurve25519 encryption keys, the format FOLD creates and uses.
RFC 3156MIME Security with OpenPGPImplementedPGP/MIME for signed and encrypted mail.
RFC 3394AES Key WrapImplementedWraps the session key for Curve25519 recipients.
RFC 7253OCB Authenticated EncryptionImplementedOwn implementation on top of the system AES, checked against the RFC test vectors; used to read GnuPG's OCB-encrypted messages.
RFC 9106Argon2ImplementedKey derivation of Fortress Mode, checked against the RFC test vector.
RFC 7693BLAKE2ImplementedInside Argon2, own implementation checked against openssl.
RFC 5869HKDFImplementedFrom CryptoKit, for Fortress Mode.

Sender authenticity

How FOLD checks who really sent a message.

RFCStandardStatusIn FOLD
RFC 6376DKIM SignaturesImplementedVerified on the device: body hash and signature recomputed.
RFC 8463Ed25519 for DKIMImplementedChecked against the example message from the RFC.
RFC 8301DKIM Crypto Algorithm UsageImplementedKeys under 1024 bits and rsa-sha1 signatures are rejected.
RFC 8601Authentication-ResultsPartialOnly results stamped under the account's IMAP host name are trusted; providers that use another name, Gmail among them, yield no result yet.
RFC 7489DMARCPartialFOLD uses the DMARC result your server recorded and checks alignment itself; the published policy is looked up only before showing a brand logo.
RFC 7208SPFPartialSPF needs the sending IP address; FOLD reads the result your server recorded.
BIMIBrand Indicators for Message Identification (Internet-Draft)ImplementedLogo only after DMARC passed under an enforcing policy and with a verified mark certificate; fetched once per message and stored with it.
RFC 9399Logotypes in X.509 CertificatesImplementedThe brand logo is taken from the verified mark certificate.
Method

How this page is kept

The status comes from FOLD's conformance rules and an audit of the mail stack against the RFCs. Every row is checked against the source code before it appears here, and the page changes when the code does. The code cites 95 different RFCs in total; this page shows the ones that decide how well a mail client works with real servers.