152 lines
4.7 KiB
Plaintext
152 lines
4.7 KiB
Plaintext
##
|
|
## overall design
|
|
##
|
|
|
|
## Each of these configurations assume that I don't use the web interfaces
|
|
## (usually) for any of my servers and that I only use mu4e as my email client
|
|
## (because I am smarter than my smartphone).
|
|
|
|
## Further assumptions include that that the only "folders" (or labels) that I
|
|
## care about are inbox, archive, trash, drafts (maybe) and junk. Anything
|
|
## beyond this turns email into something it is not (a terrible todo list). Junk
|
|
## is only useful for my hosted email so that I can train the bayesian filter.
|
|
|
|
## To elaborate on the folders I do care about:
|
|
##
|
|
## - Inbox is the main interaction point with the email server/client. Mail
|
|
## comes in and I make the decision to reply (keep thread open in inbox),
|
|
## archive (important enough to keep, but not enough to stay in sight), or
|
|
## delete (just plain useless). (Note there is instant delete or move to trash
|
|
## depending on how sure I am of the message's uselessness). Note that ideally
|
|
## the inbox is empty...as in no files (regardless of read/unread). This keeps
|
|
## it fast and uncluttered.
|
|
##
|
|
## - Archive (or whatever this is called in the server) is for old messages that
|
|
## may be useful for reference). This is where many messages end up and accounts
|
|
## for most of the size/bulk of the files. This is also why small inbox is
|
|
## important, because searching through all these files is sloowwww.
|
|
##
|
|
## - Sent is useless (just search for To:notme in archive) so don't bother
|
|
## syncing at all.
|
|
##
|
|
## - Trash is useful but only locally. I found it was a pain to get trash to
|
|
## sync correctly with everything else mu4e does, so I don't actually sync this
|
|
## folder. Instead, server trash is for spam/auto- deleted crap found by my
|
|
## filters. Client trash works like actual trash on the web interface. If I lose
|
|
## my laptop...oh well, it's just trash :)
|
|
##
|
|
## - Drafts works just like trash in that it only is useful locally and not
|
|
## synced with the server. Ideally it is empty (why keep empty drafts??).
|
|
|
|
##
|
|
## gmail server
|
|
##
|
|
|
|
## To the best of my knowledge, gmail uses one giant folder and a bunch of
|
|
## "labels" to group emails. This is frustrating because it does not map to
|
|
## on-disk filesystem paths very nicely by default. Specifically, "All Mail"
|
|
## refers to everything minus trash/spam, and an "Inbox" label (folder?) is
|
|
## applied on top of this to denote the inbox messages. This leads to duplicates
|
|
## in many vanilla IMAP syncing solutions.
|
|
|
|
## To get around this, I created a new label called "rxv" (archive, because
|
|
## apparently this name is "system reserved" in gmail) to denote the "non-inbox"
|
|
## messages. This works but assumes that these labels are mutually exclusive
|
|
## (which has no enforcement in gmail) so all handling is done by mu4e to ensure
|
|
## that these are updated properly (eg msgs from inbox moved to archive folder).
|
|
## I also set auto-expunge = off and set deleted/expunged messages to be moved
|
|
## to trash (it could also be set to "delete forever" but trash is safer).
|
|
|
|
## NOTE: this does not seem to work all that well when one moves from archive
|
|
## back to inbox (eg it actually double-labels the message) Since I hardly ever
|
|
## do this...whatever
|
|
|
|
IMAPAccount gmail
|
|
Host imap.gmail.com
|
|
User natedwarshuis@gmail.com
|
|
PassCmd "oauth-refresh natedwarshuis@gmail.com"
|
|
AuthMechs XOAUTH2
|
|
SSLType IMAPS
|
|
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
|
# CertificateFile ~/.local/etc/certs/imap.gmail.com.pem
|
|
# PipelineDepth 1
|
|
|
|
IMAPStore gmail-remote
|
|
Account gmail
|
|
|
|
MaildirStore gmail-local
|
|
Subfolders Verbatim
|
|
Path /mnt/data/Mail/gmail/
|
|
Inbox /mnt/data/Mail/gmail/inbox
|
|
|
|
Channel gmail-inbox
|
|
Far :gmail-remote:"INBOX"
|
|
Near :gmail-local:"inbox"
|
|
Create Both
|
|
Expunge Far
|
|
SyncState *
|
|
|
|
Channel gmail-all
|
|
Far :gmail-remote:"rxv"
|
|
Near :gmail-local:"archive"
|
|
Create Both
|
|
Expunge Near
|
|
SyncState *
|
|
|
|
Group gmail
|
|
Channel gmail-inbox
|
|
Channel gmail-all
|
|
|
|
##
|
|
## private email server
|
|
##
|
|
|
|
IMAPAccount yavin4
|
|
Host portnoy4prez.yavin4.ch
|
|
User ndwar@yavin4.ch
|
|
PassCmd "pass email/ndwar@yavin4.ch/plain"
|
|
AuthMechs PLAIN
|
|
SSLType IMAPS
|
|
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
|
PipelineDepth 1
|
|
|
|
IMAPStore yavin4-remote
|
|
Account yavin4
|
|
|
|
MailDirStore yavin4-local
|
|
Path /mnt/data/Mail/yavin4/
|
|
Inbox /mnt/data/Mail/yavin4/inbox
|
|
|
|
Channel yavin4-inbox
|
|
Far :yavin4-remote:"INBOX"
|
|
Near :yavin4-local:"inbox"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
|
|
Channel yavin4-sent
|
|
Far :yavin4-remote:"Sent"
|
|
Near :yavin4-local:"sent"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
|
|
Channel yavin4-archive
|
|
Far :yavin4-remote:"Archive"
|
|
Near :yavin4-local:"archive"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
|
|
Channel yavin4-junk
|
|
Far :yavin4-remote:"Junk"
|
|
Near :yavin4-local:"junk"
|
|
Create Both
|
|
Expunge Both
|
|
SyncState *
|
|
|
|
Group yavin4
|
|
Channel yavin4-inbox
|
|
Channel yavin4-sent
|
|
Channel yavin4-archive
|