@@ -0,0 +1,144 @@
## Manage your gmail account in emacs with mu4e
There're a lot of combinations to manage your email with emacs, but this works for me. I've a backup and I can manage my daily email.
The stack:
* emacs
* offlineimap
* mu
* mu4e
### offlineimap
#### install
$ pacman -S offlineimap
#### configure
~ /.offlineimaprc
``` bash
[general]
accounts = Gmail
maxsyncaccounts = 1
pythonfile = ~ /.offlineimap.py
[Account Gmail]
localrepository = Local
remoterepository = Remote
[Repository Local]
type = Maildir
localfolders = ~ /Maildir
[Repository Remote]
type = Gmail
remoteuser = [email protected]
remotepasseval = get_password_emacs(" imap.gmail.com" , " [email protected] " , " 993" )
realdelete = no
folderfilter = lambda foldername: foldername not in [' [Gmail]/Spam' , ' [Gmail]/All Mail' , ' [Gmail]/Starred' , ' [Gmail]/Important' ]
holdconnectionopen = true
keepalive = 60
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
```
~ /.offlineimap.py
``` python
# !/usr/bin/python
import re, os
def get_password_emacs (machine , login , port ):
s = " machine %s login %s port %s password ([^ ]*)\n " % (machine, login, port)
p = re.compile(s)
authinfo = os.popen(" gpg -q --no-tty -d ~/.authinfo.gpg" ).read()
return p.search(authinfo).group(1 )
```
~ /.authinfo
``` bash
machine imap.gmail.com login [email protected] port 993 password blabla123bla456
machine smtp.gmail.com login [email protected] port 587 password blabla123bla456
```
With emacs, to encrypt this file:
* M-x epa-encrypt-file (generate ~ /.authinfo.gpg and remove original).
#### launch
$ offlineimap (here you can take a beer).
### mu
#### Install
$ yaourt -S mu
#### Launch
$ mu index --maildir=~ /Maildir
### mu4e
mu4e is installed by default with mu package. Only that you needs is load it in emacs.
#### Configure
in your .emacs, ~ /emacs.d/init.el or whatever.
Note:
* To send mails with smtpmail.el and use gnutls, we need install the package (pacman -S gnutls)
``` lisp
(require 'mu4e)
;; default
(setq mu4e-maildir (expand-file-name "~/Maildir"))
(setq mu4e-drafts-folder "/[Gmail].Drafts")
(setq mu4e-sent-folder "/[Gmail].Sent Mail")
(setq mu4e-trash-folder "/[Gmail].Trash")
;; don't save message to Sent Messages, GMail/IMAP will take care of this
(setq mu4e-sent-messages-behavior 'delete)
;; setup some handy shortcuts
(setq mu4e-maildir-shortcuts
'(("/INBOX" . ?i)
("/[Gmail].Sent Mail" . ?s)
("/[Gmail].Trash" . ?t)))
;; allow for updating mail using 'U' in the main view:
(setq mu4e-get-mail-command "offlineimap")
;; something about ourselves
;; I don't use a signature...
(setq
user-mail-address "[email protected] "
user-full-name "Toni Reina"
;; message-signature
;; (concat
;; "Foo X. Bar\n"
;; "http://www.example.com\n")
)
;; sending mail -- replace USERNAME with your gmail username
;; also, make sure the gnutls command line utils are installed
;; package 'gnutls-bin' in Debian/Ubuntu, 'gnutls' in Archlinux.
(require 'smtpmail)
(setq message-send-mail-function 'smtpmail-send-it
starttls-use-gnutls t
smtpmail-starttls-credentials
'(("smtp.gmail.com" 587 nil nil))
smtpmail-auth-credentials
(expand-file-name "~/.authinfo.gpg")
smtpmail-default-smtp-server "smtp.gmail.com"
smtpmail-smtp-server "smtp.gmail.com"
smtpmail-smtp-service 587
smtpmail-debug-info t)
```