doomemacs/modules/email/mu4e/README.org

151 lines
4.8 KiB
Org Mode
Raw Normal View History

#+TITLE: email/mu4e
2019-01-05 16:50:08 -05:00
#+DATE: April 8, 2017
#+SINCE: v2.0
#+STARTUP: inlineimages
2019-01-05 16:50:08 -05:00
* Table of Contents :TOC:
- [[#description][Description]]
- [[#module-flags][Module Flags]]
- [[#plugins][Plugins]]
- [[#prerequisites][Prerequisites]]
- [[#macos][MacOS]]
- [[#arch-linux][Arch Linux]]
- [[#nixos][NixOS]]
- [[#opensuse][openSUSE]]
- [[#debianubuntu][Debian/Ubuntu]]
- [[#features][Features]]
- [[#configuration][Configuration]]
- [[#offlineimap][offlineimap]]
- [[#mbsync][mbsync]]
- [[#troubleshooting][Troubleshooting]]
- [[#no-such-file-or-directory-mu4e][=No such file or directory, mu4e=]]
- [[#void-function-org-time-add-error-on-gentoo][~(void-function org-time-add)~ error on Gentoo]]
2019-01-05 16:50:08 -05:00
* Description
2017-05-25 20:08:50 +02:00
This module makes Emacs an email client, using ~mu4e~.
#+begin_quote
2019-01-05 16:50:08 -05:00
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./
2017-05-25 20:08:50 +02:00
2019-01-05 16:50:08 -05:00
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).
#+end_quote
2019-01-05 16:50:08 -05:00
** Module Flags
+ ~+gmail~ Enables gmail-specific configuration.
** Plugins
+ [[https://github.com/agpchil/mu4e-maildirs-extension][mu4e-maildirs-extension]]
2017-08-21 20:07:07 +02:00
2019-01-05 16:50:08 -05:00
* Prerequisites
2017-05-25 20:08:50 +02:00
This module requires:
2019-01-05 16:50:08 -05:00
+ Either ~mbsync~ (default) or ~offlineimap~ (to sync mail with)
2017-05-25 20:08:50 +02:00
+ ~mu~ (to index your downloaded messages)
2017-08-21 20:07:07 +02:00
** MacOS
2019-01-05 16:50:08 -05:00
#+BEGIN_SRC sh
brew install mu
2019-01-05 16:50:08 -05:00
# And one of the following
brew install isync # mbsync
brew install offlineimap
#+END_SRC
2017-08-21 20:07:07 +02:00
** Arch Linux
2019-12-09 10:54:27 +01:00
Run one of the following commands.
2019-01-05 16:50:08 -05:00
#+BEGIN_SRC sh
sudo pacman -S isync # mbsync
# OR
2019-01-05 16:50:08 -05:00
sudo pacman -S offlineimap
#+END_SRC
2019-12-09 10:54:27 +01:00
Install ~mu~, which is not available in the main repositories but in the AUR, by
using for example the AUR helper ~yay~.
#+BEGIN_SRC sh
yay -S mu
#+END_SRC
2019-07-19 13:24:25 -05:00
** NixOS
#+BEGIN_SRC nix
environment.systemPackages = with pkgs; [
mu
# And one of the following
isync
offlineimap
];
#+END_SRC
[[https://github.com/Emiller88/dotfiles/blob/master/modules/shell/mail.nix][An example of setting up mbsync with home-manager]]
2019-01-05 16:50:08 -05:00
** openSUSE
2019-11-21 14:45:18 -05:00
Remove ~#~ in ~#sync_program=offlineimap~ to choose ~offlineimap~ instead of
~mbsync~.
#+BEGIN_SRC sh :dir /sudo::
sync_program=isync # mbsync
#sync_program=offlineimap
2019-11-21 14:45:18 -05:00
sudo zypper install maildir-utils $sync_program
#+END_SRC
** Debian/Ubuntu
Run the command corresponding to the desired backend and the last one.
#+BEGIN_SRC sh
sudo apt-get install isync # mbsync
# or
sudo apt-get install offlineimap
# then
sudo apt-get install maildir-utils # mu
#+END_SRC
2019-01-05 16:50:08 -05:00
* TODO Features
* Configuration
** offlineimap
This module uses =mbsync= by default. To change this, change ~+mu4e-backend~:
2019-01-05 16:50:08 -05:00
#+BEGIN_SRC emacs-lisp
(setq +mu4e-backend 'offlineimap)
#+END_SRC
2019-01-05 16:50:08 -05:00
Then you must set up offlineimap and index your mail:
2019-01-05 16:50:08 -05:00
1. Write a ~\~/.offlineimaprc~. Mine can be found [[https://github.com/hlissner/dotfiles/tree/master/shell/mu][in my dotfiles repository]]. It
is configured to download mail to ~\~/.mail~. I use [[https://www.passwordstore.org/][unix pass]] to securely
store my login credentials. You can find a *very* detailed configuration
[[https://github.com/OfflineIMAP/offlineimap/blob/master/offlineimap.conf][here]].
2. Download your email: ~offlineimap -o~ (may take a while)
3. Index it with mu: ~mu index --maildir ~/.mail~
Then configure Emacs to use your email address:
#+BEGIN_SRC emacs-lisp :tangle no
;; Each path is relative to `+mu4e-mu4e-mail-path', which is ~/.mail by default
2019-01-05 16:50:08 -05:00
(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")
(mu4e-compose-signature . "---\nHenrik Lissner"))
t)
#+END_SRC
2017-05-25 20:08:50 +02:00
2019-01-05 16:50:08 -05:00
** TODO mbsync
* 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 [[https://gitweb.gentoo.org/repo/gentoo.git/tree/net-mail/mu/files/70mu-gentoo.el#n2][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 [[https://gitweb.gentoo.org/repo/gentoo.git/commit/net-mail/mu?id=770e1fccb119fbce8ba6d16021a3598123f212ff][fixed this issue]], but you may
need to switch to the unstable build of =net-mail/mu= to see it.