-- Leo's gemini proxy

-- Connecting to perso.pw:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;

Using emacs to manage mails with mu4e


Author: Solène

Date: 15 June 2017

Tags: emacs email


NILIn 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


IMAPStore my_imap-remote

Account my_imap


MailDirStore my_imap-local

Path ~/Maildir/my_imap/

Inbox ~/Maildir/my_imap/Inbox

SubFolders Legacy


channel my_imap

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


This query will search mails having list header "misc.openbsd.org"

and which are unread and which contains "avahi" pattern.


date:20140101..20150215 urgent


This one will looks for mails within date range of 1st january 2014 to

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.


-- Response ended

-- Page fetched on Sat Apr 27 00:26:48 2024