Falsehoods programmers believe about email

In the spirit of falsehoods programmers believe about names and time, here’s some falsehoods about email which are all too common.

  • Everyone has an email address
  • Everyone has exactly one email address
  • An email address never changes
  • Whenever an address does change, it’s under that user’s control
  • Whenever an address does change, it’s because the user specifically requested it to happen
  • Whenever an address does change, the old address will continue to work/exist
  • Any one email address refers to only one single person
  • Unique strings of characters all map to different addresses
  • All email is hosted by a centralized system
  • When email is sent to a user at a domain, it is delivered to a server whose address matches that domain
  • When email is sent by a user at a domain, it is sent by a server whose address matches that domain
  • All email comes from a .com, .net, .edu, or .org address
  • You can filter out email based on the TLD or ccTLD from which it originates
  • Having a particular ccTLD means that you prefer to receive communications in that country’s native language (for example, .fr → French)
  • Email addresses only contain letters
  • Email addresses only contain letters and numbers
  • Email addresses only contain letters, numbers, and a handful of common punctuation marks (e.g. ., _, and -)
  • Email addresses will have at least one letter in them
  • An email address like ^_^@example.com or +&#@example.com is invalid
  • Email is a reliable transport
  • Email is an instantaneous transport
  • Emails will be sent within a few minutes of their scheduling
  • Emails will be sent within a few hours of their scheduling
  • Emails will be sent within a few days of their scheduling
  • Emails will be received soon after they’re sent
  • When an email is sent it immediately goes to its destination server
  • If an email bounces, the address is invalid
  • If an email doesn’t bounce, the address is valid
  • An address which is valid will always be valid, and an address which is invalid will always be invalid
  • All email is sent via SMTP over TCP/IP port 25
  • All email is sent via SMTP over TCP/IP
  • All email is sent via SMTP over IP
  • All email is sent via SMTP
  • All email servers support the various vendor extensions by the current “everyone uses this vendor” vendor (Microsoft, Google, etc.)
  • An email can only have one From: address
  • The Date: header on a message is legitimate
  • The Received: headers will always be no earlier than the Date: header
  • All email clients support HTML attachments
  • All email clients support HTML message bodies
  • All email clients support MIME encoding
  • Email is secure
  • Encrypted email is secure
  • All email is accessed via webmail
  • All email is accessed via webmail or IMAP
  • All email is accessed via webmail, IMAP, or POP3
  • Nobody uses email anymore

See also: email is bad

Update I’m getting some good additions from folks' responses and I’ll be adding them as I see them.

From elainemorisi:

  • Anyone with a .edu address is a student
  • Anyone with a .edu address is a student or faculty
  • Students and faculty will use their .edu address to sign up for all of their Internet accounts

Additional suggestions from a reddit thread:

From Jens Alfke:

  • Email addresses are case-sensitive / can be compared by == or strcmp
  • A reply to an email sent to address X will come from X (this is the mistake made by things that say “Reply with REMOVE to unsubscribe”)
  • If you receive email at address X, you are capable of sending email whose From header is X.

A good one that was posted by many folks when this post went viral but seems to first be by benoliver999 on lobste.rs:

  • If you send a url in an email, the user will be the first to click it

Update, 9/1/2022: Wow, I am getting overwhelmed with comments and suggestions. This really struck a nerve, huh!

I don’t think I’ll be adding any more things to this list. But here’s a few threads you can follow and post comments on:

Also, I moderate every single comment that comes to this site, so please be patient if a comment you post doesn’t appear immediately.

Finally, see this followup.

Comments

To see the comments on this entry, please log in. Alternately, send me an email, or join me on Discord!