Initial commit
This commit is contained in:
commit
8a58bb9264
12
README.md
Normal file
12
README.md
Normal file
@ -0,0 +1,12 @@
|
||||
# MailConfig
|
||||
|
||||
Example config files for managing email on a Linux system.
|
||||
|
||||
Software to install:
|
||||
====================
|
||||
|
||||
- Mutt as a mail client.
|
||||
- OfflineImap and Getmail to retrieve mail on disk.
|
||||
- Msmtp to send mail.
|
||||
- abook for managing addresses.
|
||||
- gpg for password storage and mail encryption.
|
15
getmail/getmailrc
Normal file
15
getmail/getmailrc
Normal file
@ -0,0 +1,15 @@
|
||||
[retriever]
|
||||
type = SimplePOP3SSLRetriever
|
||||
server = pop.example.com
|
||||
username = username@example.com
|
||||
|
||||
# passwd.gpg contains the password.
|
||||
password_command = ("/usr/bin/gpg","-dq","/home/myuser/.getmail/passwd.gpg")
|
||||
port = 995
|
||||
|
||||
[destination]
|
||||
type = Maildir
|
||||
path = ~/mail/
|
||||
|
||||
[options]
|
||||
read_all = False
|
27
msmtprc
Normal file
27
msmtprc
Normal file
@ -0,0 +1,27 @@
|
||||
# Set default values for all following accounts.
|
||||
defaults
|
||||
auth on
|
||||
tls on
|
||||
tls_trust_file /etc/ssl/certs/ca-certificates.crt
|
||||
logfile ~/.msmtp.log
|
||||
|
||||
# first example
|
||||
account example
|
||||
host smtp.example.com
|
||||
port 465
|
||||
from myuser@example.com
|
||||
user myuser
|
||||
# passwd.gpg contains the password for the first account.
|
||||
passwordeval "gpg -dq ~/.getmail/passwd.gpg"
|
||||
tls_starttls off
|
||||
|
||||
# Gmail
|
||||
account gmail
|
||||
host smtp.gmail.com
|
||||
port 587
|
||||
from gmailuser@gmail.com
|
||||
user gmailuser
|
||||
passwordeval "gpg -dq ~/.offlineimappass.gpg"
|
||||
|
||||
# Set a default account
|
||||
account default : myuser
|
23
mutt/colors.linux
Normal file
23
mutt/colors.linux
Normal file
@ -0,0 +1,23 @@
|
||||
# -*-muttrc-*-
|
||||
|
||||
# Palette for use with the Linux console. Black background.
|
||||
|
||||
color hdrdefault brightblue black
|
||||
color quoted brightblack black
|
||||
color signature brightblue black
|
||||
color attachment red black
|
||||
color prompt brightmagenta black
|
||||
color message brightblue black
|
||||
color error brightred black
|
||||
color indicator black brightblue
|
||||
color status white brightblack
|
||||
color tree white black
|
||||
color normal white black
|
||||
color markers brightblue black
|
||||
color search white black
|
||||
color tilde brightmagenta black
|
||||
color index blue black ~F
|
||||
color index brightblue black "~N|~O"
|
||||
|
||||
# color body brightwhite black '\*+[^*]+\*+'
|
||||
# color body brightwhite black '_+[^_]+_+'
|
15
mutt/gmail
Normal file
15
mutt/gmail
Normal file
@ -0,0 +1,15 @@
|
||||
## Receive options.
|
||||
source "~/.mutt/mailboxes"
|
||||
set mbox_type=Maildir
|
||||
set folder=~/ImapMail/gmail
|
||||
set spoolfile="+INBOX"
|
||||
set header_cache=~/.cache/mutt
|
||||
set record = +Sent\ Items
|
||||
set postponed = "+/Drafts"
|
||||
|
||||
## Send options.
|
||||
set sendmail="/usr/bin/msmtp"
|
||||
set use_from=yes
|
||||
set realname="Real Name"
|
||||
set from=gmailuser@gmail.com
|
||||
set envelope_from=yes
|
110
mutt/gpg.rc
Normal file
110
mutt/gpg.rc
Normal file
@ -0,0 +1,110 @@
|
||||
# -*-muttrc-*-
|
||||
#
|
||||
# Command formats for gpg.
|
||||
#
|
||||
# Some of the older commented-out versions of the commands use gpg-2comp from:
|
||||
# http://70t.de/download/gpg-2comp.tar.gz
|
||||
#
|
||||
# %p The empty string when no passphrase is needed,
|
||||
# the string "PGPPASSFD=0" if one is needed.
|
||||
#
|
||||
# This is mostly used in conditional % sequences.
|
||||
#
|
||||
# %f Most PGP commands operate on a single file or a file
|
||||
# containing a message. %f expands to this file's name.
|
||||
#
|
||||
# %s When verifying signatures, there is another temporary file
|
||||
# containing the detached signature. %s expands to this
|
||||
# file's name.
|
||||
#
|
||||
# %a In "signing" contexts, this expands to the value of the
|
||||
# configuration variable $pgp_sign_as, if set, otherwise
|
||||
# $pgp_default_key. You probably need to
|
||||
# use this within a conditional % sequence.
|
||||
#
|
||||
# %r In many contexts, mutt passes key IDs to pgp. %r expands to
|
||||
# a list of key IDs.
|
||||
|
||||
|
||||
# Section A: Key Management
|
||||
|
||||
# The default key for encryption (used by $pgp_self_encrypt and
|
||||
# $postpone_encrypt).
|
||||
#
|
||||
# It will also be used for signing unless $pgp_sign_as is set to a
|
||||
# key.
|
||||
#
|
||||
# Unless your key does not have encryption capability, uncomment this
|
||||
# line and replace the keyid with your own.
|
||||
#
|
||||
# set pgp_default_key="0x12345678"
|
||||
|
||||
# If you have a separate signing key, or your key _only_ has signing
|
||||
# capability, uncomment this line and replace the keyid with your
|
||||
# signing keyid.
|
||||
#
|
||||
# set pgp_sign_as="0x87654321"
|
||||
|
||||
|
||||
# Section B: Commands
|
||||
|
||||
# Note that we explicitly set the comment armor header since GnuPG, when used
|
||||
# in some localiaztion environments, generates 8bit data in that header, thereby
|
||||
# breaking PGP/MIME.
|
||||
|
||||
# decode application/pgp
|
||||
set pgp_decode_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f"
|
||||
|
||||
# verify a pgp/mime signature
|
||||
set pgp_verify_command="gpg --status-fd=2 --no-verbose --quiet --batch --output - --verify %s %f"
|
||||
|
||||
# decrypt a pgp/mime attachment
|
||||
set pgp_decrypt_command="gpg --status-fd=2 %?p?--passphrase-fd 0? --no-verbose --quiet --batch --output - %f"
|
||||
|
||||
# create a pgp/mime signed attachment
|
||||
# set pgp_sign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f"
|
||||
set pgp_sign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --detach-sign --textmode %?a?-u %a? %f"
|
||||
|
||||
# create a application/pgp signed (old-style) message
|
||||
# set pgp_clearsign_command="gpg-2comp --comment '' --no-verbose --batch --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f"
|
||||
set pgp_clearsign_command="gpg --no-verbose --batch --quiet --output - %?p?--passphrase-fd 0? --armor --textmode --clearsign %?a?-u %a? %f"
|
||||
|
||||
# create a pgp/mime encrypted attachment
|
||||
# set pgp_encrypt_only_command="pgpewrap gpg-2comp -v --batch --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
|
||||
set pgp_encrypt_only_command="pgpewrap gpg --batch --quiet --no-verbose --output - --encrypt --textmode --armor --always-trust -- -r %r -- %f"
|
||||
|
||||
# create a pgp/mime encrypted and signed attachment
|
||||
# set pgp_encrypt_sign_command="pgpewrap gpg-2comp %?p?--passphrase-fd 0? -v --batch --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
|
||||
set pgp_encrypt_sign_command="pgpewrap gpg %?p?--passphrase-fd 0? --batch --quiet --no-verbose --textmode --output - --encrypt --sign %?a?-u %a? --armor --always-trust -- -r %r -- %f"
|
||||
|
||||
# import a key into the public key ring
|
||||
set pgp_import_command="gpg --no-verbose --import %f"
|
||||
|
||||
# export a key from the public key ring
|
||||
set pgp_export_command="gpg --no-verbose --export --armor %r"
|
||||
|
||||
# verify a key
|
||||
set pgp_verify_key_command="gpg --verbose --batch --fingerprint --check-sigs %r"
|
||||
|
||||
# read in the public key ring
|
||||
set pgp_list_pubring_command="gpg --no-verbose --batch --quiet --with-colons --with-fingerprint --with-fingerprint --list-keys %r"
|
||||
|
||||
# read in the secret key ring
|
||||
set pgp_list_secring_command="gpg --no-verbose --batch --quiet --with-colons --with-fingerprint --with-fingerprint --list-secret-keys %r"
|
||||
|
||||
# fetch keys
|
||||
# set pgp_getkeys_command="pkspxycwrap %r"
|
||||
|
||||
# pattern for good signature - may need to be adapted to locale!
|
||||
|
||||
# set pgp_good_sign="^gpgv?: Good signature from "
|
||||
|
||||
# OK, here's a version which uses gnupg's message catalog:
|
||||
# set pgp_good_sign="`gettext -d gnupg -s 'Good signature from "' | tr -d '"'`"
|
||||
|
||||
# This version uses --status-fd messages
|
||||
set pgp_good_sign="^\\[GNUPG:\\] GOODSIG"
|
||||
|
||||
# pattern to verify a decryption occurred
|
||||
set pgp_decryption_okay="^\\[GNUPG:\\] DECRYPTION_OKAY"
|
||||
|
10
mutt/mailcap
Normal file
10
mutt/mailcap
Normal file
@ -0,0 +1,10 @@
|
||||
text/html; lynx -assume_charset=%{charset} -display_charset=utf-8 -dump %s; nametemplate=%s.html; copiousoutput
|
||||
application/pdf; mupdf %s &>/dev/null
|
||||
image/JPG; feh -F -Z %s &>/dev/null
|
||||
image/jpeg; feh -F -Z %s &>/dev/null
|
||||
image/gif; feh -F -Z %s &>/dev/null
|
||||
image/png; feh -F -Z %s &>/dev/null
|
||||
application/vnd.oasis.opendocument.text; libreoffice %s &>/dev/null
|
||||
application/vnd.ms-excel; libreoffice %s &>/dev/null
|
||||
application/vnd.oasis.opendocument.spreadsheet; libreoffice %s &>/dev/null
|
||||
application/msword; libreoffice %s &>/dev/null
|
15
mutt/perso
Normal file
15
mutt/perso
Normal file
@ -0,0 +1,15 @@
|
||||
#my_pop_pass
|
||||
set mbox_type=Maildir
|
||||
set folder=~/mail
|
||||
set spoolfile=+/
|
||||
set header_cache=~/.cache/mutt
|
||||
set record = ~/sent
|
||||
set my_user=myuser
|
||||
|
||||
set realname = 'Real Name'
|
||||
|
||||
## Send options.
|
||||
set sendmail="/usr/bin/msmtp"
|
||||
set use_from=yes
|
||||
set from=myuser@example.com
|
||||
set envelope_from=yes
|
68
muttrc
Normal file
68
muttrc
Normal file
@ -0,0 +1,68 @@
|
||||
#Editor:
|
||||
set editor=`echo \$EDITOR`
|
||||
|
||||
#vim keybinding
|
||||
bind pager j next-line
|
||||
bind pager k previous-line
|
||||
bind attach,index,pager \CD next-page
|
||||
bind attach,index,pager \CU previous-page
|
||||
bind pager g top
|
||||
bind pager G bottom
|
||||
bind attach,index g first-entry
|
||||
bind attach,index G last-entry
|
||||
|
||||
#mailcap
|
||||
set mailcap_path = ~/.mutt/mailcap
|
||||
auto_view text/html
|
||||
|
||||
#encryption
|
||||
source ~/.mutt/gpg.rc
|
||||
|
||||
# Allow Mutt to open a new IMAP connection automatically.
|
||||
unset imap_passive
|
||||
|
||||
# Keep the IMAP connection alive by polling intermittently (time in seconds).
|
||||
set imap_keepalive = 300
|
||||
|
||||
# How often to check for new mail (time in seconds).
|
||||
set mail_check = 60
|
||||
|
||||
|
||||
set header_cache = "~/.cache/mutt"
|
||||
set imap_check_subscribed
|
||||
|
||||
## gmail
|
||||
source "~/.mutt/gmail"
|
||||
folder-hook *gmailuser@gmail.com/ 'source ~/.mutt/gmail'
|
||||
|
||||
## perso
|
||||
source "~/.mutt/perso"
|
||||
# Here we use the $folder variable that has just been set in the sourced file.
|
||||
# We must set it right now otherwise the 'folder' variable will change in the next sourced file.
|
||||
folder-hook $folder 'source ~/.mutt/perso'
|
||||
|
||||
|
||||
macro index,pager <f2> '<sync-mailbox><enter-command>source ~/.mutt/perso<enter><change-folder>!<enter>'
|
||||
macro index,pager <f3> '<sync-mailbox><enter-command>source ~/.mutt/gmail<enter><change-folder>!<enter>'
|
||||
|
||||
#colors
|
||||
source ~/.mutt/colors.linux
|
||||
|
||||
#automate change directory
|
||||
macro index 'c' '<change-folder>?<change-dir><home>^K=<enter>'
|
||||
|
||||
macro index \cb "\
|
||||
:set my_tmp_pipe_decode=\$pipe_decode\n\
|
||||
:set pipe_decode\n\
|
||||
|urlview\n\
|
||||
:set pipe_decode=\$my_tmp_pipe_decode\n\
|
||||
:unset my_tmp_pipe_decode\n" \
|
||||
'call urlview to extract URLs out of a message'
|
||||
|
||||
#contact management with abook
|
||||
set query_command= "abook --mutt-query '%s'"
|
||||
macro index,pager a "<pipe-message>abook --add-email-quiet<return>" "Add this sender to Abook"
|
||||
bind editor <Tab> complete-query
|
||||
|
||||
#speed up folders switch
|
||||
set sleep_time = 0
|
5
offlineimap.py
Normal file
5
offlineimap.py
Normal file
@ -0,0 +1,5 @@
|
||||
#! /usr/bin/env python2
|
||||
from subprocess import check_output
|
||||
|
||||
def get_pass():
|
||||
return check_output("gpg -dq ~/.offlineimappass.gpg", shell=True).strip("\n")
|
39
offlineimaprc
Normal file
39
offlineimaprc
Normal file
@ -0,0 +1,39 @@
|
||||
# Sample minimal config file. Copy this to ~/.offlineimaprc and edit to
|
||||
# get started fast.
|
||||
|
||||
[general]
|
||||
accounts = mygmail
|
||||
# Path to file with arbitrary Python code to be loaded
|
||||
pythonfile = ~/.offlineimap.py
|
||||
# Controls how many accounts may be synced simultaneously
|
||||
maxsyncaccounts = 1
|
||||
|
||||
[Account mygmail]
|
||||
localrepository = mygmailLocal
|
||||
remoterepository = mygmailRemote
|
||||
autorefresh = 0.5
|
||||
# Quick-syncs do not update if the only changes were to IMAP flags.
|
||||
# autorefresh=0.5 together with quick=10 yields
|
||||
# 10 quick refreshes between each full refresh, with 0.5 minutes between every
|
||||
# refresh, regardless of type.
|
||||
quick = 10
|
||||
|
||||
[Repository mygmailLocal]
|
||||
type = GmailMaildir
|
||||
localfolders = ~/ImapMail/mygmail
|
||||
|
||||
[Repository mygmailRemote]
|
||||
type = Gmail
|
||||
remoteuser = gmailuser@gmail.com
|
||||
remotepasseval = get_pass()
|
||||
# Necessary as of OfflineIMAP 6.5.4
|
||||
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
|
||||
|
||||
# Generate config file for mutt
|
||||
[mbnames]
|
||||
enabled = yes
|
||||
filename = ~/.mutt/mailboxes
|
||||
header = "mailboxes "
|
||||
peritem = "+%(accountname)s/%(foldername)s"
|
||||
sep = " "
|
||||
footer = "\n"
|
Loading…
Reference in New Issue
Block a user