Skip to content

Instantly share code, notes, and snippets.

@duesee
Created September 25, 2023 10:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save duesee/9ca4819c05ebc999fc421f96cf9b10a3 to your computer and use it in GitHub Desktop.
Save duesee/9ca4819c05ebc999fc421f96cf9b10a3 to your computer and use it in GitHub Desktop.
Collection of email defects spotted in the wild.

Formats

EML/IMF

General advice: ...

Title Description Reference Observed in Reported Status Comment

Protocols

IMAP

Note: "[...] do not attempt to deduce command syntax from the command section alone; instead refer to the Formal Syntax section."

Defects

Title Description Reference Observed in Reported Status Comment
Zero UID UID MUST be >= 1 but was 0 uniqueid = nz-number RFC 3501 Outlook No Unknown
Negative line length body-fld-lines should be >= 0 and < 4_294_967_296 but was -1 body-fld-lines = number RFC 3501 Dovecot No Unknown
Missing text HIGHESTMODSEQ status should have a text but didn't https://www.rfc-editor.org/rfc/rfc7162 section 7 Gmail Yes Open Examples in RFC are wrong. Errata?

Ambiguities

  • code and text didn't play well ...
Greeting { kind: Ok, code: None, text: "[FOO] ..." }

... will result in ...

* OK [FOO] ...

... and be interpreted like ...

Greeting { kind: Ok, code: Foo, text: "..." }

And ...

Greeting { kind: Ok, code: None, text: "[...]" }

... can't be expressed.
  • Unclear command continuation response(s).
    • When is base64 allowed in command continuation response?
`+ Rm9vbw==` could be interpreted as "Fooo" (base64) or just "Rm9vbw==" (text).

Created with https://www.tablesgenerator.com/markdown_tables

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment