This guide will cover the basics on how to integrate emacs with the bridge using
- mu4e
- mbsync
- smtpmail
How to install them:
- Fedora:
sudo dnf install isync maildir-utils - Debian:
sudo apt install isync maildir-utils
Create a configuration file ~/.mbsyncrc for mbsync
IMAPAccount protonmail
Host 127.0.0.1
Port 1143
PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.authinfo.gpg | awk 'FNR == 1 {print $8}'"
SSLType STARTTLS
SSLVersions TLSv1.2
CertificateFile ~/.config/protonmail/bridge/cert.pem
IMAPStore remote
Account protonmail
#You can change .mail to something else
MaildirStore local
Path ~/.mail/
Inbox ~/.mail/INBOX/
Channel inbox
Master :remote:
Slave :local:
Patterns *
Create Both
Expunge Both
SyncState *
Group protonmail
Channel inbox
Next we need to create a file to log our credentials for sending mail with smtpmail. Create a file ~/.authinfo with the following contents
machine 127.0.0.1 login USERNAME_HERE@protonmail.com port 1143 password PASSWORD_PROVIDED_BY_BRIDGE
machine 127.0.0.1 login USERNAME_HERE@protonmail.com port 1025 password PASSWORD_PROVIDED_BY_BRIDGE
You should encrypt it
one option is to use epa in emacs
M-x epa-encrypt-file.
Another is to set a symmetric encryption that will require some password
$ gpg --symetric .authinfo. Finally delete .authinfo.
Now to get/sync you mail, run on a terminal $ mbsync protonmail.
This is a minimal configuration that you should include in your init.el configuration file.
(require 'mu4e)
(setq mu4e-maildir "~/.mail"
mu4e-attachment-dir "~/Downloads")
(setq user-mail-address "USERNAME_HERE@protonmail.com"
user-full-name "YOUR_NAME")
;; Get mail
(setq mu4e-get-mail-command "mbsync protonmail"
mu4e-change-filenames-when-moving t ; needed for mbsync
mu4e-update-interval 120) ; update every 2 minutes
;; Send mail
(setq message-send-mail-function 'smtpmail-send-it
smtpmail-auth-credentials "~/.authinfo.gpg"
smtpmail-smtp-server "127.0.0.1"
smtpmail-stream-type 'starttls
smtpmail-smtp-service 1025)
(add-to-list 'gnutls-trustfiles (expand-file-name "~/.config/protonmail/bridge/cert.pem"))
To index your emails from the terminal run mu index --maildir=~/.mail
Now just launch M-x mu4e from emacs to read your mail.
I'm not entirely sure how to do a pull request on a Gist, but I fixed a typo, and you can see the fix in my fork.
I essentially changed
gpg --symetric .authinfotogpg --symmetric .authinfo.