[neomutt-users] My multi-account setup
Pietro Cerutti
gahr at gahr.ch
Mon Jun 22 12:17:30 CEST 2020
Hi all,
I recently shared my multi-account setup with a number of users who
asked for a solution on #neomutt. The overall reaction was positive, so
I thought I'd share it with you all.
I am not claiming this is the best way to go about it. It's just how I
got to a point where switching between account isn't a pain for me.
0. Background
I use NeoMutt purely as a front-end to IMAP. All my emails are stored
remotely, on a number of IMAP accounts. I don't use maildirs or notmuch.
No sync'ing. Just pure network access to IMAP. Sending email is done
through each account's SMTP server.
1. Goals
I want it to be easy to switch between accounts. I always only want to
see context related to one account at a time. I don't copy emails
between accounts. I want the switching to be explicit. I don't use
folder-hooks (for this purpose).
2. Method
I define a number of config files, one for each account. They all look
pretty similar, if not for how different IMAP servers organize
well-known mailboxes such as Sent or Trash. I define macros to source
these files in a smart way (see imap_post.cfg and the my_imap_done
variable below). I have a main config file where I list all accounts
and bind macros to them. This also allows me to set up general config
entries that are valid for all accounts.
3. Authentication
I store sensitive information such as my usernames and passwords in my_
variables. These are set at startup and always valid. Different accounts
get different my_ variables.
4. The files
4.1 imap.cfg
The entry point for my multi-account config is the main imap.cfg file:
######################################################################
# ~/.config/neomutt/imap.cfg
# the default account to load when NeoMutt starts up
source ./imap_gmail.cfg
# macros for switching between accounts
macro index <F6> "<enter-command>unmailboxes *<enter><enter-command>source ~/.config/neomutt/imap_fastmail.cfg<enter><sync-mailbox>"
macro index <F7> "<enter-command>unmailboxes *<enter><enter-command>source ~/.config/neomutt/imap_gmail.cfg<enter><sync-mailbox>"
macro index <F8> "<enter-command>unmailboxes *<enter><enter-command>source ~/.config/neomutt/imap_hotmail.cfg<enter><sync-mailbox>"
# config valid for all accounts
set imap_check_subscribed = yes
set imap_authenticators = plain
# needed to skip reloading the default account on start up
set my_imap_done = true
######################################################################
4.2 imap_fastmail.cfg
FastMail.com account file. Works with an app-password.
######################################################################
# ~/.config/neomutt/imap_fastmail.cfg
set my_imap = imaps://$my_fastmail_user@imap.fastmail.com/
set imap_pass = $my_fastmail_pass
set folder = "$my_imap"
set spoolfile = +INBOX
set postponed = +Drafts
set record = +Sent
set trash = +Trash
set move = no
set smtp_authenticators = plain
set smtp_url = smtps://$my_fastmail_user@smtp.fastmail.com
set smtp_pass = $my_fastmail_pass
source ./imap_post.cfg
######################################################################
4.3 imap_gmail.cfg
GMail.com account file. Works with an app-password.
######################################################################
# ~/.config/neomutt/imap_gmail.cfg
set my_imap = imaps://$my_gmail_user@imap.gmail.com/
set imap_pass = $my_gmail_pass
set folder = "$my_imap"
set spoolfile = +INBOX
set postponed = +[Gmail]/Drafts
set record = "+[Gmail]/Sent Mail"
set trash = +[Gmail]/Trash
set move = no
set smtp_authenticators = plain
set smtp_url = smtps://$my_gmail_user@smtp.gmail.com
set smtp_pass = $my_gmail_pass
source ./imap_post.cfg
######################################################################
4.4 imap_hotmail.cfg
Hotmail.com account file.
######################################################################
# ~/.config/neomutt/imap_hotmail.cfg
set my_imap = imaps://$my_hotmail_user@imap-mail.outlook.com
set imap_pass = $my_hotmail_pass
set folder = "$my_imap"
set spoolfile = +INBOX
set postponed = +Drafts
set record = +Sent
set trash = +Trash
set move = no
set smtp_authenticators = plain
set smtp_url = smtps://$my_hotmail_user@smtp-mail.outlook.com
set smtp_pass = $my_hotmail_pass
source ./imap_post.cfg
######################################################################
4.5 imap_post.cfg
Switches to $folder after loading an account file. It is guarded by
my_imap_done so I don't load the default account twice on start up.
######################################################################
# ~/.config/neomutt/imap_post.cfg
ifdef my_imap_done "push <change-folder>$my_imap<enter>"
######################################################################
That's the bulk of it. Feel free to adopt / enhance / fix / comment.
I'll keep the most up-to-date version as a gist on github:
https://gist.github.com/gahr/870e866fa9c6bf7e6818cca39b304a40
Thanks,
--
Pietro Cerutti
More information about the neomutt-users
mailing list