Title: Using emacs to manage mails with mu4e | |
Author: Solène | |
Date: 15 June 2017 | |
Tags: emacs email | |
Description: | |
In this article we will see how to fetch, read and manage your emails | |
from Emacs using mu4e. The process is the following: mbsync command | |
(while mbsync is the command name, the software name is **isync**) | |
create a mirror of an imap account into a Maildir format on your | |
filesystem. **mu** from mu4e will create a database from the Maildir | |
directory using xapian library (full text search database), then mu4e | |
(mu for emacs) is the GUI which queries xapian database to manipulates | |
your mails. | |
Mu4e handles with dynamic bookmarks, so you can have some predefined | |
filters instead of having classic folders. You can also do a query and | |
reduce the results with successives queries. | |
You may have heard about using notmuch with emacs to manage mails, | |
mu4e and notmuch doesn't do the same job. While notmuch is a nice tool | |
to find messages from queries and create filters, it operates as a | |
read-only tool and can't do anything with your mail. mu4e let you | |
write mail, move, delete, flag etc... AND still allow to make complex | |
queries. | |
I wrote this article to allow people to try mu4e quickly, you may want | |
to read both isync and mu4e manual to have a better configuration | |
suiting your needs. | |
## Installation | |
On OpenBSD you need to install 2 packages: | |
# pkg_add mu4 isync | |
## isync configuration | |
We need to configure isync to connect to the IMAP server: | |
Edit the file **~/.mbsyncrc**, there is a trick to not have the | |
password in clear text in the configuration file, see isync | |
configuration manual for this: | |
iMAPAccount my_imap | |
Host my_host_domain.info | |
User imap_user | |
Pass my_pass_in_clear_text | |
SSLType IMAPS | |
Account my_imap | |
Path ~/Maildir/my_imap/ | |
Inbox ~/Maildir/my_imap/Inbox | |
SubFolders Legacy | |
Master :my_imap-remote: | |
Slave :my_imap-local: | |
Patterns * | |
Create Slave | |
Expunge Both | |
## mu4e / emacs configuration | |
We need to configure mu4e in order to tell where to find the mail | |
folder. Add this to your **~/.emacs** file. | |
(require 'mu4e) | |
(setq mu4e-maildir "~/Maildir/my_imap/" | |
mu4e-sent-folder "/Sent Messages/" | |
mu4e-trash-folder "/Trash" | |
mu4e-drafts-folder "/Drafts") | |
## First start | |
A few commands are needed in order to make everything works. We need | |
to create the base folder as mbsync command won't do the job for some | |
reason, and we need mu to index the mails the first time. | |
mbsync can takes a moment because it will download ALL your mails. | |
$ mkdir -p ~/Maildir/my_imap | |
$ mbsync -aC | |
$ mu init --maildir=~/Maildir/my_imap | |
$ mu index | |
## How to use mu4e | |
start emacs, run **M-x mu4e RET** and enjoy, the documentation of mu4e | |
is well done. Press "U" at mu4e screen to synchronize with imap | |
server. | |
A query for mu4e looks like this: | |
list:misc.openbsd.org flag:unread avahi | |
and which are unread and which contains "avahi" pattern. | |
date:20140101..20150215 urgent | |
15th february 2015 containing word "urgent". | |
## Additional notes | |
The current setup doesn't handle sending mails, I'll write another | |
article about this. This requires configuring a smtp authentification | |
and an identify for mu4e. | |
Also, you may need to tweak mbsync configuration or mu4e | |
configuration, some settings must be changed depending on the imap | |
server, this is particuliarly important for deleted mails. | |