[[!sidebar content=""]] [[!meta title="Revisiting the anatomy of Emacs mail user agents"]] [[!meta copyright="Copyright © 2022 Mohsen BANAN"]] [[!inline pages="internal(2022/info/mail-nav)" raw="yes"]] # Revisiting the anatomy of Emacs mail user agents Mohsen BANAN (MO-HH-SS-EN, he/him, ) [[!inline pages="internal(2022/info/mail-before)" raw="yes"]] Actually, it makes very good sense to use Emacs as your Mail User Agent (MUA). A dominant and fundamental aspect of mail composition and mail processing is editing. And, if you live inside of Emacs, of course you expect to have the ultimate messaging environment. Over the years many Emacs MUAs have appeared. As of 2022, the following Emacs MUAs are available to choose from: Gnus, VM, WanderLust, Mew, mu4e, notmuch.el, mh-e and Rmail. Emacs MUAs can be used as Monolithic-MUAs (with elisp smtp and imap protocol implementations) or as Split-MUAs (with external smtp and imap protocol implementations). We make a case for superiority of the Split-MUA model. Recent evolutions of Gmail and Outlook towards requiring OAuth and our agility to better address that requirement based on the Split-MUA anatomy is one of our justifications for converging towards the Split-MUA anatomy. While what we are presenting here applies to all Emacs MUAs, our focus is Gnus. Gnus is distributed with Emacs proper and is the richest and most potent MUA, anywhere! We have wrapped all that is needed to use Gnus as a complete Split-MUA for Unix-like environments in a package called MARMEE (Multi-Account Resident Message Exchange Environment). MARMEE consists of a set of packages that span: - Deb GNU/Linux Packages - PyPI Python Packages - Emacs Elisp Packages plus everything that is needed to properly install these on Debian-like GNU/ Linux systems and integrate them with Gnus. By choice, we have limited our integration languages to elisp, python and bash. MARMEE component packages include: - OuterRim-qmail (deb+PyPI) – Outer Rim oriented qmail, as a Resident Mail Submission UA. qmail-remote is replaced by a python implementation which includes OAuth awareness. qmail-inject is replaced by a python implementation which is X822-Bus aware (for DSN requests) - offlineimap (PyPI) – as a Resident Mail Retrieval UA. offlineimap includes OAuth awareness. - notmuch (deb) – for searching - gpg (deb) – for privacy and integrity - flufl.bounce (PyPI) – for bounces and DSN (Delivery Status Notification) processing. - bisos.cs (PyPI) – BISOS CommandServices for configuration and secrets management and integration. - gmailOauth2.cs (PyPI) – For SMTP and IMAP authentication/authorization through gmail.com Used by qmail-remote for out-going and by offlineimap for in-coming OAuth based mail. - org-msg (EmacsPkg) – For HTML-composition in org-mode and for htmlized citations. - mcdt (EmacsPkg) – Mail Composition, Templating, Distribution and Tracking. The integration framework for MARMEE is BISOS (ByStar Internet Services OS). Full integration of Emacs, MARMEE and BISOS is called Blee (ByStar Libre-Halaal Emacs Environment). The easiest way to use MARMEE is to install BISOS – which includes Blee. In this talk I will demonstrate what a wonderful environment the Split-MUA model of Gnus+MARMEE can be. After walking through the concepts and the integration framework, I’ll walk through transparent access to multiple mail servers conveniently and show org-mode composition of BIDI emails going out as html. My primary goal is to show that these packages can be integrated, but that integration is not simple. Furthermore, various improvements can be made to the packages to enhance the complete integrated environment. I’ll be enumerating my requests from relevant package managers. If we were to collectively buy into something like this, we can greatly simplify use of Emacs MUAs with all mail systems – including the commonly used Gmail and Outlook. Of course, we should not be using Gmail and Outlook. Instead we should extend Libre Software into Libre Services and provide for edge-oriented autonomy and privacy in the services domain. There is a services side to what we have presented here. It is called “The Libre-Halaal By\* (ByStar) Digital Ecosystem” – Perhaps that could be a topic for the next EmacsConf. For questions or comments, feel welcome to email me at: [[!inline pages="internal(2022/info/mail-after)" raw="yes"]] [[!inline pages="internal(2022/info/mail-nav)" raw="yes"]] [[!taglink CategoryMail]]