Add Fastmail email and calendar, multi-account neomutt

- mbsync: add Fastmail IMAP channel (rbw for credentials)
- msmtp: add Fastmail SMTP account
- neomutt: add fastmail account file, F2/F3 account switching macros
- vdirsyncer + khal: Fastmail CalDAV calendar sync
- zshrc: restore calsync alias

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-20 14:58:48 -04:00
parent a923165370
commit 0f0ee16ebd
8 changed files with 101 additions and 13 deletions

View File

@@ -23,3 +23,30 @@ Create Near
Sync All Sync All
Expunge Near Expunge Near
SyncState * SyncState *
##
IMAPAccount fastmail
Host imap.fastmail.com
Port 993
User rob@rharbaugh.com
PassCmd "rbw get fastmail-app-password"
TLSType IMAPS
CertificateFile /etc/ssl/certs/ca-bundle.crt
IMAPStore fastmail-remote
Account fastmail
MaildirStore fastmail-local
SubFolders Verbatim
Path ~/mail/fastmail/
Inbox ~/mail/fastmail/Inbox/
Channel fastmail
Far :fastmail-remote:
Near :fastmail-local:
Patterns * !Spam
Create Near
Sync All
Expunge Near
SyncState *

View File

@@ -0,0 +1,12 @@
[calendars]
[[fastmail]]
path = ~/.local/share/calendars/fastmail/*
color = light blue
[sqlite]
path = ~/.local/share/khal/db.sqlite
[locale]
timeformat = %H:%M
dateformat = %Y-%m-%d
datetimeformat = %Y-%m-%d %H:%M

View File

@@ -1,14 +1,22 @@
defaults defaults
auth xoauth2 tls on
tls on tls_trust_file /etc/ssl/certs/ca-bundle.crt
tls_trust_file /etc/ssl/certs/ca-bundle.crt logfile ~/.local/share/msmtp/msmtp.log
logfile ~/.local/share/msmtp/msmtp.log
account outlook account outlook
host smtp.office365.com auth xoauth2
port 587 host smtp.office365.com
tls_starttls on port 587
user robharbaugh@outlook.com tls_starttls on
passwordeval python3 /usr/share/neomutt/oauth2/mutt_oauth2.py ~/.config/neomutt/outlook.tokens --decryption-pipe 'gpg --decrypt' user robharbaugh@outlook.com
passwordeval python3 /usr/share/neomutt/oauth2/mutt_oauth2.py ~/.config/neomutt/outlook.tokens --decryption-pipe 'gpg --decrypt'
account fastmail
auth plain
host smtp.fastmail.com
port 587
tls_starttls on
user rob@rharbaugh.com
passwordeval rbw get fastmail-app-password
account default : outlook account default : outlook

View File

@@ -0,0 +1,17 @@
set realname = "Rob Harbaugh"
set from = "rob@rharbaugh.com"
set mbox_type = Maildir
set folder = ~/mail/fastmail
set spoolfile = +Inbox
set postponed = +Drafts
set trash = +Trash
set sendmail = "/usr/bin/msmtp -a fastmail"
set envelope_from = yes
set sendmail_wait = 0
set signature = ~/.config/neomutt/signature
unmailboxes *
mailboxes =Inbox =Drafts =Sent =Trash =Archive

View File

@@ -8,8 +8,9 @@ set postponed = +Drafts
set trash = +Trash set trash = +Trash
set signature = ~/.config/neomutt/signature set signature = ~/.config/neomutt/signature
set sendmail = "/usr/bin/msmtp" set sendmail = "/usr/bin/msmtp -a outlook"
set envelope_from = yes set envelope_from = yes
set sendmail_wait = 0 set sendmail_wait = 0
unmailboxes *
mailboxes =Inbox =Drafts =Sent =Archive =Trash =Church =Family =House =Work =Notes mailboxes =Inbox =Drafts =Sent =Archive =Trash =Church =Family =House =Work =Notes

View File

@@ -88,3 +88,7 @@ color body underline color111 color235 "<[^ ]+@[^ ]+>"
# Sidebar toggle # Sidebar toggle
bind index,pager B sidebar-toggle-visible bind index,pager B sidebar-toggle-visible
# Account switching
macro index <F2> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/personal<enter><change-folder>!<enter><refresh>' "Switch to Outlook"
macro index <F3> '<sync-mailbox><enter-command>source ~/.config/neomutt/accounts/fastmail<enter><change-folder>!<enter><refresh>' "Switch to Fastmail"

View File

@@ -0,0 +1,18 @@
[general]
status_path = "~/.local/share/vdirsyncer/status/"
[pair fastmail_calendar]
a = "fastmail_calendar_local"
b = "fastmail_calendar_remote"
collections = ["from a", "from b"]
[storage fastmail_calendar_local]
type = "filesystem"
path = "~/.local/share/calendars/fastmail/"
fileext = ".ics"
[storage fastmail_calendar_remote]
type = "caldav"
url = "https://caldav.fastmail.com/dav/"
username = "rob@rharbaugh.com"
password.fetch = ["command", "rbw", "get", "fastmail-app-password"]

View File

@@ -20,6 +20,7 @@ export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$HOME/go/bin:$HOME/.local/bin:$PA
# Aliases # Aliases
alias e="emacsclient -t -a \"\"" alias e="emacsclient -t -a \"\""
alias mbsync="mbsync -a" alias mbsync="mbsync -a"
alias calsync="vdirsyncer sync"
alias c="clear" alias c="clear"
alias cat="bat --paging=never --style=plain" alias cat="bat --paging=never --style=plain"
alias cp="cp -riv" alias cp="cp -riv"