## 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 = areina0@gmail.com remotepasseval = get_password_emacs("imap.gmail.com", "areina0@gmail.com", "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 areina0@gmail.com port 993 password blabla123bla456 machine smtp.gmail.com login areina0@gmail.com 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 "areina0@gmail.com" 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) ```