Skip to content

Instantly share code, notes, and snippets.

@ihilt
Last active June 1, 2020 15:31
Show Gist options
  • Select an option

  • Save ihilt/0b488d7460f8e7d9e611eb7ab93e3eae to your computer and use it in GitHub Desktop.

Select an option

Save ihilt/0b488d7460f8e7d9e611eb7ab93e3eae to your computer and use it in GitHub Desktop.
mutt config for gmail and email in google apps for business

mutt config

The environment variables are sourced from a private file with .bashrc.

~/.mbsyncrc

Create Slave
SyncState *

IMAPAccount gmail
Host imap.gmail.com
User email@gmail.com
PassCmd "echo $GMAIL_PERSONAL_PASSWORD"
CertificateFile /etc/ssl/certs/ca-certificates.crt
SSLType IMAPS
PipelineDepth 50

MaildirStore gmail-local
Path ~/.mutt/mailbox/personal/
Inbox ~/.mutt/mailbox/personal/inbox
Subfolders Verbatim

IMAPStore gmail-remote
Account gmail

Channel gmail-inbox
Master :gmail-remote:
Slave :gmail-local:
Patterns "INBOX"
Expunge Both

Channel gmail-sent
Master :gmail-remote:"[Gmail]/Sent Mail"
Slave :gmail-local:sent
Expunge Both

Channel gmail-drafts
Master :gmail-remote:"[Gmail]/Drafts"
Slave :gmail-local:drafts
Create Both
Expunge Both

Group gmail
Channel gmail-inbox
Channel gmail-sent
Channel gmail-drafts

IMAPAccount work
Host imap.gmail.com
User email@work.com
PassCmd "echo $GMAIL_WORK_PASSWORD"
CertificateFile /etc/ssl/certs/ca-certificates.crt
SSLType IMAPS
PipelineDepth 50

MaildirStore work-local
Path ~/.mutt/mailbox/work/
Inbox ~/.mutt/mailbox/work/inbox
Subfolders Verbatim

IMAPStore work-remote
Account work

Channel work-inbox
Master :work-remote:
Slave :work-local:
Patterns "INBOX"
Expunge Both

Channel work-sent
Master :work-remote:"[Gmail]/Sent Mail"
Slave :work-local:sent
Expunge Both

Channel work-drafts
Master :work-remote:"[Gmail]/Drafts"
Slave :work-local:drafts
Create Both
Expunge Both

Group work
Channel work-inbox
Channel work-sent
Channel work-drafts

crontab

*/5 * * * * killall mbsync > /dev/null 2>&1; sleep 1; . ~/.privaterc; /usr/local/bin/mbsync -a -V > ~/.mbsync_log 2>&1

~/.muttrc

set smtp_authenticators = "login"
set ssl_force_tls = yes
set mail_check_stats

unset mark_old

set attribution = "On %[!%D at %r], %n <%a> wrote:"

set index_format="[%Z] %?X?A&-? %D  %-20.20F  %s"
set date_format="%D %r"
set pager_format="%4C %Z %[!%b %e at %I:%M %p] %.20n %s%* -- (%P)"
set sort=threads

set fast_reply
set include
set text_flowed
set rfc2047_parameters

folder-hook 'personal' 'source ~/.mutt/gmail.personal'
folder-hook 'work' 'source ~/.mutt/gmail.work'
macro index 1 "<change-folder> = ~/.mutt/mailbox/personal/inbox/<enter>"
macro index 2 "<change-folder> = ~/.mutt/mailbox/work/inbox/<enter>"
macro index G "!mbsync -a^M" "Update through mbsync"
macro index <f2> "!mbsync gmail-inbox gmail-sent^M" "Update gmail through mbsync"
macro index <f3> "!mbsync work-inbox work-sent^M" "Update work through mbsync"
set move = no

source ~/.mutt/gmail.work

~/.mutt/gmail.personal

set smtp_url = "smtp://$GMAIL_PERSONAL_USERNAME@smtp.gmail.com:587"
set smtp_pass = $GMAIL_PERSONAL_PASSWORD
set folder = "~/.mutt/mailbox/personal"
set spoolfile = "~/.mutt/mailbox/personal/inbox"
set postponed = "~/.mutt/mailbox/personal/drafts"
set trash = "+trash"
set record = ""
set from = "$GMAIL_PERSONAL_USERNAME@gmail.com"
set realname = "Ian Hilt"
set signature=~/.mutt/personal.signature

~/.mutt/gmail.work

set smtp_url = "smtp://$GMAIL_WORK_USERNAME@smtp.gmail.com:587/"
set smtp_pass = $GMAIL_WORK_PASSWORD
set folder = "~/.mutt/mailbox/work"
set spoolfile = "~/.mutt/mailbox/work/inbox"
set postponed = "~/.mutt/mailbox/work/drafts"
set trash = "+trash"
set record=""
set from = $GMAIL_WORK_USERNAME
set realname = "Ian Hilt"
set signature=~/.mutt/work.signature

~/.mailcap

text/html; lynx -dump %s; nametemplate=%s.html; copiousoutput;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment