Mettre en place mu4e
Pour mettre en place mu4e
avec emacs sous archlinux, il faut installer
mu-git et isync. Les fichiers seront protégés par une clé gpg
, qu’il
faut donc créer.
La procédure est la suivante:
- Créer le fichier
~/.authinfo.gpg
, utilisé parsendmail.el
pour l’envoie d’email. On l’utilisera pour récupérer les mots de passe des serveurs IMAP avecmbsync
, pour ne les stocker qu’à un seul endroit. - Configurer
mbsync
via le fichier~/.mbsync.rc
afin de récupérer les e-mails depuis les serveurs distants en local. - Indexer les e-mails avec
mu
. - Mettre en place
mu4e
.
Ouvrez le fichier ~/.auhthinfo.gpg
avec emacs, puis
sauvegardez-le. Emacs propose de sélectionner des destinataires pour
le chiffrement. Selon le guide sur emacswiki, il est préférable d’en
choisir au moins un, sinon on devra rentrer notre mot de passe à
chaque fois que l’on sauvegarde le fichier.
Pour l’exemple prenons un service IMAP. On aura besoin du serveur
IMAP: imap.example.com
, ainsi que du serveur smtp pour l’envoi des
emails: smtp.example.com
.
Chaque ligne du fichier ~/.authinfo.gpg
correspondra aux identifiants
utilisés pour envoyer un e-mail via smtpmail
. Une ligne a la forme
suivante:
machine mail.example.com YOUR_EMAIL email port 465 password YOUR_PASSWORD
On va configurer mbsync
via le fichier ~/.mbsyncrc
, remplacez
ACCOUNT_NAME
par un nom de compte de votre choix, et YOUR_EMAIL
par
votre adresse email complète.
IMAPAccount ACCOUNT_NAME
Host mail.example.com
User YOUR_EMAIL
PassCmd "/usr/bin/gpg2 -q --for-your-eyes-only --no-tty -d ~/.authinfo.gpg | grep YOUR_EMAIL | sed 's/.*password //'"
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt
IMAPStore ACCOUNT_NAME-remote
Account ACCOUNT_NAME
MaildirStore ACCOUNT_NAME-local
Path ~/Mail/ACCOUNT_NAME/
Inbox ~/Mail/ACCOUNT_NAME/INBOX
SubFolders Verbatim
Channel ACCOUNT_NAME
Far :ACCOUNT_NAME-remote:
Near :ACCOUNT_NAME-local:
Patterns *
Create Both
Expunge Both
SyncState *
La commande spécifiée dans PassCmd
récupère le mot de passe du compte
SMTP stocké dans ~/.authinfo
.
Il faut créer le dossier dans ~/Mail/
avant de lancer mbsync
la
première fois:
mkdir -p ~/Mail/ACCOUNT_NAME
mbsync ACCOUNT_NAME
Si la commande n’échoue pas, elle renvoie un résultat comme suit:
$ mbsync ACCOUNT_NAME
C: 1/1 B: 10/10 F: +0/0 *0/0 #0/0 N: +0/0 *0/0 #0/0
Un fois fait, on peut indexer nos e-mails avec la commande mu
.
mu index -m ~/Mail --my-address YOUR_EMAIL --my-address YOUR_OTHER_EMAIL
Il reste à configurer mu4e
, le frontend à mu
. La configuration
suivante utilise use-package
.
(use-package mu4e
:load-path "/usr/share/emacs/site-lisp/mu4e/"
:init
(use-package smtpmail)
:config
(setq mu4e-update-interval (* 5 60))
(setq mu4e-get-mail-command "mbsync -a")
(setq mail-user-agent 'mu4e-user-agent)
(setq message-send-mail-function 'smtpmail-send-it)
(setq mu4e-sent-messages-behavior 'sent)
(setq mu4e-change-filenames-when-moving t)
(setq mu4e-context-policy 'pick-first)
(setq mu4e-contexts
(list
(make-mu4e-context
:name "ACCOUNT_NAME"
:vars '(
(mu4e-trash-folder . "/ACCOUNT_NAME/Trash")
(mu4e-refile-folder . "/ACCOUNT_NAME/Archives")
(mu4e-sent-folder . "/ACCOUNT_NAME/Sent")
(mu4e-drafts-folder . "/ACCOUNT_NAME/Drafts")
(user-mail-address . "YOUR_EMAIL")
(user-full-name . "Firstname Lastname")
(smtpmail-default-smtp-server . "smtp.example.com")
(smtpmail-smtp-server . "smtp.example.com")
(smtpmail-smtp-user . "YOUR_EMAIL")
(smtpmail-stream-type . ssl)
(smtpmail-smtp-service . 465)
))
))
))
Dans la configuration, (setq mu4e-sent-messages-behavior 'sent)
doit
être mis à 'delete
dans le cas du serveur IMAP de Gmail, car ce
dernier s’occupe de copier les messages dans le dossier Sent.
La ligne (setq mu4e-change-filenames-when-moving t)
est nécessaire
lorsqu’on utilise mbsync
, voir C.2.6 IMAP-synchronization and
file-name changes.