
I have just learned that, beginning in 3 days, my employees will no longer be able to receive their work email.
Apparently Google is dropping support for Gmail accounts being able to fetch mail from outside accounts. At all. And they announced this change less than 60 days ago. (The announcement was in the basement, stairs, leopard, etc.)
What I want to accomplish is simple:
- When email arrives for employee@dnalounge.com, have it delivered to the inbox of dna_employee@gmail.com.
- When that employee is logged into that gmail account, have them able to send email with employee@dnalounge.com in the From: header.
This cannot be accomplished by simply having mail.dnalounge.com forward messages for employee@dnalounge.com to dna_employee@gmail.com because SPF destroyed email forwarding. Specifically:
- customer@example.com sends mail to employee@dnalounge.com.
- The SPF record of example.com includes "-all" (strict) as is now common.
- mail.dnalounge.com forwards that messages to dna_employee@gmail.com.
- Gmail says, "example.com does not permit dnalounge.com to send email on their behalf" and rejects it with "550 SPF hard fail".
My current email flow is this:
- Inbound mail:
- Email for employee@dnalounge.com arrives at my server.
- Message is stored in my server's Dovecot/Maildir.
- dna_employee@gmail.com has "Import emails from my other account (POP3)" selected, and Gmail has a saved plaintext copy of their mail.dnalounge.com email password to accomplish this.
- Gmail polls and downloads their email over POP3 every 30-90 minutes, sometimes longer. ← This is the thing that is going away.
- Gmail runs their aggressive spam filtering on that, and puts some subset of it into their Gmail inbox.
- Outbound mail:
- dna_employee@gmail.com has its outgoing From address configured as employee@dnalounge.com (via "Add another email address").
- When they use Gmail to send mail from their employee@dnalounge.com address, Gmail delivers it to mail.dnalounge.com, authenticating with the saved plaintext copy of the employee's mail.dnalounge.com password.
- mail.dnalounge.com delivers it to customer@example.com, so the SPF record matches mail.dnalounge.com as the origin (and I don't have to have my SPF record say "any spammer on gmail.com is allowed to send mail pretending to be any dnalounge.com address.").
The linked article says "Gmail will continue to support IMAP" which sounds like: "Gmail can still poll your server to download email, you just have to switch from POP to IMAP". That would be fine if it were true, but it is not. Gmail does not and has never supported importing email via IMAP into the Gmail MDA/MTA. It only supports adding an IMAP server as a second account in the MUA, which is not the same thing at all.
Now that Google is removing the ability to have Gmail poll my server to download messages, what are my options?
Here are some things that people will suggest that are unacceptable:
- Have the dnalounge.com MX record point to some Google thing and let them take over 100% of my company's email. Fuck no. Also it wouldn't integrate with our internal systems, store, transactional emails, bounce processing, etc.
- Have my employees' official business email addresses end in @gmail.com. Obviously no. (Maybe @aol.com though.)
- Use "Sender Rewriting Scheme" to have dnalounge.com rewrite customer@example.com to customer%example.com@dnalounge.com before forwarding it to dna_employee@gmail.com, which is insane, but also will cause any forwarded spam to be tallied against dnalounge.com and Google will just stop delivering them. At some point, Google's "best practices for forwarding" document specifically dis-recommended SRS.
- Find some other third-party email provider that still offers the POP3-download service that Gmail used to, and tell my staff, "Great news everybody! You have to switch from Gmail to Hotmail now."
So the only options that I think I have left are:
- Self-host IMAP.
- Every employee gets their own IMAP account, hosted on my own server.
- They can add that account to the Gmail mobile app or whatever, as a second IMAP account that is not Gmail. Which is apparently still supported. For now.
- My server is now responsible for storing all of their messages, including all of their spam. It is a vast amount of data. I will have to implement quotas.
- My employees will be wasting a bunch of time trying to find and delete emails with the same giant attachment in each of the 30 messages in the same thread, and if they don't, mail to them will bounce.
- "I can't find that old email any more" is a conversation that we will be having all the time.
- My employees will be receiving way more spam, since Gmail's spam filtering is (presumably?) still more effective than what I can accomplish with some stock set of spamassassin rules.
- Walk North until I reach the nearest fjord, board an ice floe, lie down, and wait for my bones to turn to dust. The ocean will sequester my carbon. I hope this email does not find you.
Do I have other options?
In summary, everything is terrible.
Previously, previously, previously, previously, previously, previously, previously.