summaryrefslogblamecommitdiffstats
path: root/2022/talks/mail.md
blob: e0a54386fd79a597040958951079a7359b4c12e9 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
                       








                                                                                                     
                                                                            

                                                             
 




                                                                              
 











                                                                              


                                                                               

                                                                             
 

                                                                          



                                                                    
                          
                        





                                                                              


                                  
                                                                                             



















                                                                                
                                                                            

                                                                               

                                                                          









                                                                                 
                                                                            



                                                                       
                                                                        
 
                                                                             


                                                                          
                                                                              
                                                      

                                                     
                                                                                                



            
                                                      















                                                                           
                                                                        



                                                                      
                           












                                                                        





                                                            
[[!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"]]

<!-- Initially generated with emacsconf-generate-talk-page and then left alone for manual editing -->
<!-- You can manually edit this file to update the abstract, add links, etc. --->


# Revisiting the anatomy of Emacs mail user agents
Mohsen BANAN (MO-HH-SS-EN, he/him, <mailto:emacs@mohsen.1.banan.byname.net>)

[[!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&rsquo;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&rsquo;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 &ldquo;The Libre-Halaal By* (ByStar)
Digital Ecosystem&rdquo; – <http://www.by-star.net/>
Perhaps that could be a topic for the next EmacsConf.

For questions or comments, feel welcome to email me at: <mailto:emacs@mohsen.1.banan.byname.net>
# Discussion

## Notes

-   great talk -- this is a **LOT** of info to ingest!
-   link to book on polyexistentialism:
    <http://www.by-star.net/content/generated/doc.free/mohsen/PLPC/120033/>

## Questions and answers

-   Q:something I have liked about notmuch is using maildir makes
    searching fast and the knowledge that you have all your email
    period:) why gnus over notmuch. as a side note you also have
    muchsync for notmuch clients and jmap for more exotic normal
    clients.
    -   A:
-   Q:So the idea is more about emacs as a holistic computing experiance
    with other packages and services rather than about email specificly.
    as an alternative to the something like the microsoft office suite?
    -   A:
-   Q: Early on you expressed misgivings about the western copyright
    regime, but you're using a GPL license.  Is this a conflict? (great
    work BTW)
    -   A:
-   Q: Do you know of GNU Guix how do you think about using it for
    packaging/configuring Emacs & your various packages else you might
    look it up;) Or nix"os"
    -   A:
-   Q:Is this being split up in a heavily configured server for emall
    hosting and a thin client package for youl local client to integrate
    with your emacs packages, maybe with a client thin docker container
    for other packages like notmuch locally
    -   A:
-   Q:Could you expand on the definition libre-halaal?
    -   A:(answered - capture TBD)
-   Q: What is the scope of what you are imagining? Just software?
    -   A: (answered - capture TBD)
-   Q:NFTs! 
    -   A: (responded - capture TBD)


[[!inline pages="internal(2022/info/mail-after)" raw="yes"]]

[[!inline pages="internal(2022/info/mail-nav)" raw="yes"]]

[[!taglink CategoryMail]]