1
0
Fork 0
mirror of https://gitlab.com/dwt1/dotfiles.git synced 2023-02-13 20:55:19 -05:00
dwt1--dotfiles/.emacs.d/modules/email/mu4e
2020-06-19 22:43:40 -05:00
..
autoload Updating Doom Emacs. 2020-06-19 22:43:40 -05:00
config.el Updating Doom Emacs. 2020-06-19 22:43:40 -05:00
packages.el Updating Doom Emacs. 2020-06-19 22:43:40 -05:00
README.org Updating Doom Emacs. 2020-06-19 22:43:40 -05:00

email/mu4e

Description

This module makes Emacs an email client, using mu4e.

I want to live in Emacs, but as we all know, living is incomplete without email. So I prayed to the text editor gods and they (I) answered. Emacs+evil's editing combined with org-mode for writing emails? Yes please.

It uses mu4e to read my email, but depends on offlineimap (to sync my email via IMAP) and mu (to index my mail into a format mu4e can understand).

Module Flags

  • +gmail Enables gmail-specific configuration.

Plugins

This module install no plugins.

Prerequisites

This module requires:

  • Either mbsync (default) or offlineimap (to sync mail with)
  • mu, to index your downloaded messages and to provide the mu4e package.

MacOS

brew install mu
# And one of the following
brew install isync  # mbsync
brew install offlineimap

Arch Linux

Run one of the following commands.

sudo pacman -S isync  # mbsync
# OR
sudo pacman -S offlineimap

Install mu, which is not available in the main repositories but in the AUR, by using for example the AUR helper yay.

yay -S mu

NixOS

environment.systemPackages = with pkgs; [
    mu
    # And one of the following
    isync
    offlineimap
];

An example of setting up mbsync and mu with home-manager

openSUSE

Remove # in #sync_program=offlineimap to choose offlineimap instead of mbsync.

sync_program=isync # mbsync
#sync_program=offlineimap

sudo zypper install maildir-utils $sync_program

Debian/Ubuntu

Run the command corresponding to the desired backend and the last one.

sudo apt-get install isync  # mbsync
# or
sudo apt-get install offlineimap
# then
sudo apt-get install maildir-utils # mu

TODO Features

Configuration

offlineimap

This module uses mbsync by default. To use offlineimap, change +mu4e-backend:

(setq +mu4e-backend 'offlineimap)

Next, you need to write a configuration file for offlineimap. Mine can be found in my dotfiles repository. It is configured to download mail to \~/.mail. I use unix pass to securely store my login credentials. You can find a very detailed configuration here.

Next you can download your email with offlineimap -o. This may take a while, especially if you have thousands of mails.

You can now proceed with the mu and mu4e section.

mbsync

The steps needed to set up mu4e with mbsync are very similar to the ones for offlineimap.

Start with writing a \~/.mbsyncrc. An example for GMAIL can be found on pragmaticemacs.com. A non-GMAIL example is available as a gist here. The manual page contains all needed information to set up your own.

Next you can download your email with mbsync --all. This may take a while, but should be quicker than offlineimap ;).

You can now proceed with the mu and mu4e section.

mu and mu4e

You should have your email downloaded already. If you have not, you need to set offlineimap or mbsync up before you proceed.

Before you can use mu4e or the cli program mu, you need to index your email initially. How to do that differs a little depending on the version of mu you use. You can check your version with mu --version.

For mu >=1.4 you need to run two commands:

mu init --maildir ~/.mail --my-address email@example.com
mu index

mu <1.4 only requires one command:

mu index --maildir ~/.mail

Then configure Emacs to use your email address:

;; Each path is relative to `+mu4e-mu4e-mail-path', which is ~/.mail by default
(set-email-account! "Lissner.net"
  '((mu4e-sent-folder       . "/Lissner.net/Sent Mail")
    (mu4e-drafts-folder     . "/Lissner.net/Drafts")
    (mu4e-trash-folder      . "/Lissner.net/Trash")
    (mu4e-refile-folder     . "/Lissner.net/All Mail")
    (smtpmail-smtp-user     . "henrik@lissner.net")
    (user-mail-address      . "henrik@lissner.net")    ;; only needed for mu < 1.4
    (mu4e-compose-signature . "---\nHenrik Lissner"))
  t)

Troubleshooting

No such file or directory, mu4e

You will get No such file or directory, mu4e errors if you don't run doom sync after installing mu through your package manager.

(void-function org-time-add) error on Gentoo

Gentoo users will see this error because the net-mail/mu package eagerly loads mu4e (which pulls in org) much too early; before Emacs reads ~/.emacs.d. So early, that it loads the built-in version of org-mode, rather than the newer version that Doom installs.

Later versions of the net-mail/mu package have fixed this issue, but you may need to switch to the unstable build of net-mail/mu to see it.