minimail 
- Description
- Simple, non-blocking IMAP email client
- Latest
- minimail-0.1.1.tar (.sig), 2025-Oct-13, 90.0 KiB
- Maintainer
- Augusto Stoffel <arstoffel@gmail.com>
- Website
- https://github.com/astoff/minimail
- Browse ELPA's repository
- CGit or Gitweb
- Badge
To install this package from Emacs, use package-install
or list-packages
.
Full description
Minimail is a simple, non-blocking IMAP email client for Emacs.
Minimail currently covers the basics needed for reading and replying to messages. Below is a listing of implemented and planned features.
[X]
Read messages, including MIME (rendering via Gnus)[X]
Compose, reply to and forward messages[X]
Multi-account support- Search
[X]
Full text[ ]
Structured (by sender, subject, etc.)
- Sorting by thread
[X]
Simple algorithm based on subject lines[ ]
Fancy algorithm based on reference message IDs.
[X]
Move messages (also archive, move to trash, flag as junk)[ ]
Mark and operate on sets of messages (move, etc.)[ ]
"Load more messages" button[ ]
Notifications (polling or IDLE)[ ]
OAuth
Being non-blocking doesn't mean Minimail has excellent performance (spoiler: it doesn't, yet); it simply means that it has one of the necessary condition for such. In fact, Minimail currently doesn't include any of these possible optimizations:
[ ]
Caching[ ]
Connection pool (for concurrent requests)[ ]
Prefetching of messages in the background
1. Try it out
Minimail comes pre-configured to access the Emacs mailing lists served
by Yhetil via anonymous IMAP. Just type minimail-find-mailbox
to
try it out.
2. Configuration
Just set mail-user-agent
to minimail
and customize the variable
minimail-accounts
. Here is an illustrative example:
(setq mail-user-agent 'minimail minimail-accounts '((gmail ;; This can be any symbol you like to identify the account :mail-address "somebody@gmail.com" :incoming-url "imaps://imap.gmail.com" :outgoing-url "smtps://smtp.gmail.com") (work ;; Assuming Evil Corp uses "Google Workspace" as email provider :mail-address "webmaster@evilcorp.com" :incoming-url "imaps://imap.gmail.com" :outgoing-url "smtps://smtp.gmail.com" :signature (file "~/work/.signature")) (uni :mail-address "somebody@math.niceuni.edu" ;; Include a username in the server URLs if it doesn't match ;; your email address. ;; Use `imap' and `smtp' as URL scheme if your server only ;; supports STARTTLS. :incoming-url "imap://username@imap.niceuni.edu" :outgoing-url "smtp://username@smtp.niceuni.edu")))
In addition to the above, you need to configure auth-source to supply
the passwords. Some email provides require you to first create an
"app password" (for Gmail, see this). Then your ~/.authinfo
file
should look something like this:
machine imap.gmail.com login somebody@gmail.com password xxxxxxxxxxxxxxxx machine smtp.gmail.com login somebody@gmail.com password xxxxxxxxxxxxxxxx machine imap.gmail.com login webmaster@evilcorp.com password yyyyyyyyyyyyyyyy machine smtp.gmail.com login webmaster@evilcopr.com password yyyyyyyyyyyyyyyy machine imap.niceuni.edu login username password zzzzzzzzzzzzzzzz machine smtp.niceuni.edu login username password zzzzzzzzzzzzzzzz
3. Usage
Type M-x minimail-find-mailbox RET
and select a mailbox from the
list to read your messages. In a mailbox or message buffer, hit h
to see a list of available commands.