Welcome to the Power Users community on Codidact!
Power Users is a Q&A site for questions about the usage of computer software and hardware. We are still a small site and would like to grow, so please consider joining our community. We are looking forward to your questions and answers; they are the building blocks of a repository of knowledge we are building together.
How do I check email without depending on a mail client?
I use email frequently, for many things, some of them important (banks, work). From what I've seen, all the offline mail clients (like Thunderbird, Evolution, Kmail) suck for a power user - mail filters are always some arcane, hard to use scheme that is difficult to version in a dotfiles repo, the programs themselves have very complex configuration backends with many bugs, and are often opinionated about UX with all the wrong opinions. Webmail is even more terrible - mainstream ones have limited filter functionality (eg. Gmail with >20 rules) while "alternatives" like Protonmail now treat filtering as a premium feature.
I don't want to dive into hosting my own mail server yet. How can I use mail from a third party provider in a more flexible way that I can control?
1 answer
This is a broad topic, and I can't address all the details fully in one post. Instead, I will post an overview with enough keywords in each area, and leave it to the reader (and other questions) to explore each one in more detail.
The solution here is to separate the mail synchronization (receiving and sending mail) from mail usage.
Many programs support the ancient Maildir format which is a good meeting point for this. The first step is to find and set up a program that will synchronize mail from the mail server to your hard drive. This is the equivalent of clicking "Send & Receive Mail" in Outlook - in fact, many of these mail programs do use Maildir under the hood.
Maildir is not the only mail directory standard, but it is a good one. One program that can do the synchronization part is OfflineIMAP. OfflineIMAP uses IMAP - so it will try to mirror the email between the server and your computer. The other major mail protocol, POP3, is better in many ways - but it is one way: With POP3, mail is "taken" from the server, so you will no longer see it in the mail provider's webmail interface, and it will be your problem to synchronize the emails between your multiple devices (eg. using Dropbox or its open source/self hosted alternatives). So IMAP, while being buggier and slower, is less of a commitment because you can rely on the mail server to do a bit more.
This all assumes that you picked a provider that supports POP3 and/or IMAP. Providers that don't are a hopeless case of vendor lock in.
Once a program like OfflineIMAP synchronizes mail to your computer, the problem is reduced to dealing with a bunch of files. With Maildir, for example, there will be folders in your filesystem roughly corresponding to the folders on the server (with IMAP, their structure may be a bit odd to handle the intricacies of IMAP, but it should be pretty straightforward still). Each email will be a file in the .eml
format, which is text based and somewhat readable with a text editor (depending on whether the mail is using HTML or not).
Filtering can be done by simply using any scripting language to go through the files in a certain folder, checking their content (such as the From:
field), and moving them to another folder. This way you have complete control over what language you use to define filters, where you keep those definitions, and how you version them. I like Python/Shell scripts in a git repo.
Once the mails are moved between folders, you can run the synchronizer again, and it will move the mails on the server as well (if using IMAP).
Viewing can be done with any offline mail program which supports the "local folder" option for creating accounts. Because the synchronization is no longer a concern, you at least have more options in choosing a mail client with suitable UX. Indeed, it is no longer a mail client, but only a mail reader. If desired, many mail programs are also able to use filters on local folders - this is an alternative to writing separate filter scripts.
Note that sending mail is separate from receiving in traditional emails. Many providers and clients hide this from the user. However, protocols like IMAP or POP are merely for receiving mail sent to you. A separate SMTP server is used to actually send mail out. This is why mail clients will ask for a separate IMAP/POP server and another SMTP server. A mail synchronizer like OfflineIMAP will not handle sending email - you'll need a separate SMTP client (which is also integrated into many big mail clients like Thunderbird). Notably, in SMTP mail is "fire and forget" - putting a copy of it in "Sent"/"Outbox" is merely a trick that mail clients commonly do for you. If you use a minimal SMTP client, you would probably want to make sure you manually or automatically save a copy in "sent" (or whatever folder you want) so that OfflineIMAP can synchronize it.
1 comment thread