This post was heavily inspired by Email setup in Emacs with Mu4e on macOS, but with my own tweaks for a single-account configuration and some Doom-specific configurations.
Overview
Mu4e is an Emacs-based email client based on mu, an indexer that stores email in the Maildir format.
This blog post covers the installation of Mu4e in Doom Emacs on macOS. This guide should be very similar to GNU Emacs and Linux-based systems, with a few tweaks required in the various configuration files.
Installation
Prerequisites
Create the Folder Structure
Start by creating the base folder structure:
Store Email Account Passwords in macOS Keychain
Next, I will be using the macOS Keychain to store my email account passwords using the command below.
This will prompt you to input your password twice to confirm. Keep the
mu4e-example
name in mind, as you will need to reference it later in the IMAP
and SMTP configuration files.
Store Root Certificates
In order to use IMAP and SMTP, we need to provide certificates to the local services. We will use the macOS defaults for this.
- Open
Keychain Access.app
. - Select
System Roots
in the sidebar. - Select all items with
CMD + a
. - Export selected items with
SHIFT + CMD + a
to the file~/.maildir/certificates/root-certificates.pem
.
Install Dependencies
Install mbsync
(via isync
) to fetch emails via IMAP, mu
to index emails,
and msmtp
to send emails via SMTP.
Installing Mu4e
Within Doom Emacs, we can install Mu4e by enabling the package.
In this file, uncomment the mu4e
line within the :email
section. You can
also enable the +org
and +gmail
options if you prefer.
Configuration
As an overall suggestion, I create the following configuration files in the
~/.maildir
directory and using symlinks to their proper locations so that I
can backup and restore these files easily.
&& \
&& \
&& \
You can also create these files in your home directory and skip the symlinking process above.
IMAP
Next, let's configure mbsync
in the file created above. Paste the following
information and customize it to match your mail provider's information.
example
.example.com
imap@example.com
dummy"security find-generic-password -s mu4e-example -a [email protected] -w"
993
IMAPS
Login
~/.maildir/certificates/root-certificates.pem
-remote
example example
-local
example Verbatim
~/.maildir/example/
~/.maildir/example/INBOX
example
-remote:
example-local:
example*
Near
All
Both
*
SMTP
Next, let's configured msmtprc
in the file created above. Paste the following
information and customize it to match your mail provider's information.
defaults
~/.maildir/msmtp.log
~/.maildir/certificates/root-certificates.pem
startmail
on
.startmail.com
smtp465
smtp
@cleberg.net
hello@cleberg.net
hello-generic-password -s startmail -a hello@cleberg.net -w
security findon
off
: startmail
default
Doom Emacs
Finally, we need to configure Doom Emacs to use the proper packages and set some variables and functions.
;; load packages and programs
;; set base directory
;; sync imap servers
;; how often to sync in seconds
;; save attachments to defined directory
;; rename files when moving - needed for mbsync:
;; list of your email adresses:
;; check your ~/.maildir to see naming of subdirectories
;; start with the first (default) context;
;; ask for context if no context matches;
;; gpg encryptiom & decryption:
;; this can be left alone
;; don't keep message compose buffers around after sending:
;; send function:
;; send program:
;; select the right sender email from the context.
;; mu4e cc & bcc
;; mu4e address completion
Be sure to sync Doom to update the current configurations.
If you have Doom open, execute SPC h r r
to reload the new configurations.
Initial Sync
Once you have configured all of the relevant files, you can perform an initial sync. Note that you can perform syncing within Mu4e itself afer this.
Once you sync the data, you can index the emails.
&& \
The emails will now to be ready to use!
Screenshots
You can now launch Doom and open Mu4e with SPC o m
. You can also explore the
Mu4e options with SPC : mu4e
.
The home page shows various options and metdata about the account you've opened.
When composing an email, you can see the metadata fields at the top and compose the message below the indicator line.
When in a folder, you can view emails in a pane and perform actions as needed.