Mails mit mutt, offlineimap, notmuch und Passwörtern im Keyring
E-Mail auf der Kommandozeile
Für meine Mails verwende ich mutt
, sie werden von GMail aus auf meinen
Laptop synchronisiert, mit notmuch durchsucht und ich habe ein paar
kleinere Hilfsfunktionen, die Passwörter verschlüsselt im GNOME-Keyring
abspeichern und beim Eingang einer wichtigen neuen Mail eine
Benachrichtigung (libnotify
) anzeigen. Hier möchte ich erklären, wie
ich das gemacht habe. Die Anleitung ist nicht zum Blinden kopieren
gedacht, man muss mitdenken und seine Pfade entsprechend anpassen, wenn
man etwas übernimmt. Wer damit Schwierigkeiten hat, kann gern in den
Kommentaren fragen.
Beschreibung des Setups
In den folgenden Kapiteln erkläre ich, was ich genau nutze und wie ich
es eingerichtet habe. Nicht erklärt wird hier, wieso man ausgerechnet
mutt
verwenden sollte. Das muss man entweder schon wissen oder sich
noch woanders schlau machen. Für mich war es hauptsächlich die
unkomplizierte Einbindung von PGP und die modulare Art und Weise, wie
man E-Mail - Synchronisation, Vim als Texteditor, etc verknüpfen kann.
Für den Abruf der Mails verwende ich offlineimap
. Dabei handelt es
sich um ein Programm, was einen entfernten IMAP-Server und ein lokales
maildir synchronisieren kann. Hier ist Synchronisieren wörtlich gemeint,
also nicht nur der Abruf vom Mailserver über POP oder IMAP, wie das
fetchmail
oder getmail
machen würden.
Nachdem ich quasi niemals Mails lösche, die nicht gerade automatische
Benachrichtigungen von irgendwas oder Spam sind, hat sich einiges
angesammelt und trotz der Ordnerstruktur braucht man natürlich eine gute
Suchfunktion. Das leistet für mich notmuch
.
Ich beabsichtige, weiter bei GMail zu bleiben und pflege dort weiterhin
meine Kontakte. Die sind in mutt
mit goobook
erreichbar.
Der Abruf der Mails (offlineimap
), deren Versand (mutt
) und das
Adressbuch (goobook
) brauchen jeweils Zugang zum GMail-Account.
Standardmäßig würde man da dann seine Passwörter lokal irgendwo
unverschlüsselt hinlegen, aber gerade beim Mailaccount ist sowas
sicherheitstechnisch nicht ratsam. Ich möchte sie also im GNOME-Keyring
speichern, wo sie verschlüsselt liegen und bei Bedarf abgerufen werden
können. Dafür habe ich mir ein paar kleine Scripte geschrieben.
Wichtige eingehende Mails landen bei mir automatisch in einem eigenen Ordner. Darüber möchte ich mittels eines kleinen Popups benachrichtigt werden. Dafür nutze ich ein weiteres Script, was diesen Ordner überwacht und bei Neuzugang ein Popup anzeigt.
Dann gibt es natürlich noch die Feinheiten der Konfiguration - mit
welchen Programmen manche attachments geöffnet werden, etc. Am Ende ist
auch ein Link zum github-repo meines ~/.mutt
-Ordners.
Voraussetzungen
Für das Setup braucht man die folgenden Programme, deren Paketnamen für Debian/Ubuntu ich hier aufliste. Nutzer anderer Distributionen müssen das eben anpassen:
mutt
(ohne sidebar) odermutt-patched
(falls man die Sidebar will) Ich persönlich verwende es mit sidebar, wer allerdings einen tiling window manager nutzt oder aus anderen Gründen kleine Terminals hat, muss bedenken, dass für die Sidebar viel Platz draufgeht und die Ansicht der Mails inmutt
auf 80 Zeichen ausgelegt ist, d.h. mit Sidebar bricht alles komisch um.offlineimap
python-virtualenv
(weil ich goobook nicht systemweit am Paketmanagement installieren wollte)python-keyring
(weil die Module für GNOME-Keyring etc nicht im virtualenv funktionieren)urlview
(zum extrahieren von Links in E-Mails)gnupg
(zum Verschlüsseln und signieren von Mails)notmuch
(Suche)python-notify
undpython-pyinotify
(für die automatische Benachrichtigung beim Eingang neuer Mails)
keyring
Die Anleitung beginnt nicht mit dem Abrufen von Mails sondern mit dem sicheren Speichern der Passwörter. Dafür habe ich ein kleines Script geschrieben, was Passwörter im GNOME-Keyring speichert und daraus wieder abrufen kann. Das verwendete Python-Modul verspricht, auch unter OSX, KDE, evtl sogar Windows usw zu funktionieren, ausprobiert habe ich es allerdings nicht.
Das Script habe ich nach /home/emma/.mutt/scripts/kr.py
gespeichert. Nachdem es installiert ist, müssen nur noch Benutzername
und Passwort hinzugefügt werden:
/home/emma/.mutt/scripts/kr.py add [email protected]
Password:
In den Konfigurationsdateien wird an verschiedenen Stellen Bezug auf den Pfad zum Script genommen, wer den also anpasst, sollte das im Hinterkopf behalten.
goobook
Für Goobook gibt es in Debian/Ubuntu leider derzeit keine fertigen Pakete. Statt eines zu machen, habe ich die schnellere Lösung gewählt, es in eine lokale Python-Umgebung zu installieren. Das geht so:
virtualenv --system-site-packages /home/emma/.mutt/scripts/python
source /home/emma/.mutt/scripts/python/bin/activate
pip install goobook
Bei Pip handelt es sich um eine Paketverwaltung für Python-Module. Man könnte das auch mit Root-Rechten und ohne das virtualenv aufrufen, dann hätte man es systemweit installiert, aber auch an der Paketverwaltung der Distribution vorbei.
Goobook muss noch konfiguriert werden:
/home/emma/.mutt/goobookrc:
[DEFAULT]
email: [email protected]
passwordeval: /home/emma/.mutt/scripts/kr.py get [email protected]
Dann noch
ln -s /home/emma/.mutt/goobookrc /home/emma/.goobookrc
Passwort wurde hier, wie man sieht, ausdrücklich keines abgespeichert! Stattdessen wird bei jedem Aufruf der GNOME-Keyring danach befragt.
Um Goobook aus mutt heraus aufrufen zu können, brauchen wir noch einen kleinen Wrapper, der das virtualenv vor Gebrauch aktiviert:
In der Datei müssen noch Pfade angepasst werden, danach kommt sie nach
/home/emma/.mutt/scripts/gb_wrap.sh
offlineimap
Die Konfiguration von offlineimap
ist schon etwas länger:
[general]
accounts = Privat
ui = TTY.TTYUI
fsync = False
pythonfile = /home/emma/.mutt/scripts/kr.py
[Account Privat]
localrepository = PrivatLocal
remoterepository = PrivatRemote
status_backend = sqlite
postsynchook = notmuch new
[Repository PrivatLocal]
type = Maildir
localfolders = /home/emma/.mail/emma-heinle.cc/
nametrans = lambda folder: {'drafts':'[Gmail]/Entw&APw-rfe',
'sent': '[Gmail]/Gesendet',
'flagged': '[Gmail]/Markiert',
'trash': '[Gmail]/Papierkorb',
'archiv': '[Gmail]/Alle Nachrichten',
}.get(folder, folder)
[Repository PrivatRemote]
type = Gmail
#type = IMAP
remotehost = imap.googlemail.com
remoteuser = [email protected]
remotepasseval = get_password('[email protected]')
ssl = yes
maxconnections = 1
realdelete = no
nametrans = lambda folder: {'[Gmail]/Entw&APw-rfe': 'drafts',
'[Gmail]/Gesendet': 'sent',
'[Gmail]/Markiert': 'flagged',
'[Gmail]/Papierkorb': 'trash',
'[Gmail]/Alle Nachrichten': 'archiv',
}.get(folder, folder)
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
Zur Erklärung einzelner Abschnitte:
accounts = Privat
Man kann mehrere Accounts synchronisieren lassen, die muss man hier mit Kommas getrennt auflisten. Dazu müssen dann später noch Einträge angelegt werden, bei denen die Accounts näher beschrieben werden.
ui = TTY.TTYUI
offlineimap
bietet die Möglichkeit, verschiedene Oberflächen zu
verwenden. Ich nehme diese hier, damit sieht man immer, was genau getan
wird. Andere blenden etwa alles außer Fehler aus, näheres erfährt man
dazu in der manpage von offlineimap
.
fsync = False
Diese Option beschleunigt den Synchronisationsvorgang bei vielen Mails, zu Lasten der Datensicherheit, falls plötzlich der Strom ausfällt oder sonstige Abstürze passieren.
pythonfile = /home/emma/.mutt/scripts/kr.py
offlineimap
kann eine Python-Datei für zusätzliche Funktionen in der
Konfiguration einbinden. Hier binden wir den Wrapper um den Keyring ein,
damit wir keine Passwörter abspeichern müssen.
[Account Privat]
localrepository = PrivatLocal
remoterepository = PrivatRemote
status_backend = sqlite
#postsynchook = notmuch new
Die Beschreibung unseres Accounts. Wer mehrere möchte, muss mehrere
solche Blöcke einfügen. Jeder Account braucht ein lokales Repository und
ein entferntes. Die Namen sind frei wählbar, sollten allerdings
Rückschlüsse auf den Inhalt zulassen. Standardmäßig speichert
offlineimap
seine Daten in flache Dateien, das ist allerdings bei
vielen Mails nicht besonders schnell. Wir verwenden also sqlite
stattdessen. Nachdem eine Synchronisation erfolgreich durchgeführt
wurde, wird außerdem noch der Befehl notmuch new
ausgeführt, der den
Suchindex von notmuch aktualisieren soll. Dazu später mehr, für’s erste
kommentieren wir das noch aus.
[Repository PrivatLocal]
type = Maildir
Der erste Mail-Speicher, dieser hier liegt auf dem Laptop. Als Typ
wählen wir Maildir
, so werden die Mails jeweils in einer eigenen Datei
in Verzeichnissen abgelegt, die sich an der Ordnerstruktur bei GMail
orientieren.
localfolders = /home/emma/.mail/emma-heinle.cc/
Hier muss der Pfad natürlich angepasst werden.
nametrans = lambda folder: {'drafts':'[Gmail]/Entw&APw-rfe',
'sent': '[Gmail]/Gesendet',
'flagged': '[Gmail]/Markiert',
'trash': '[Gmail]/Papierkorb',
'archiv': '[Gmail]/Alle Nachrichten',
}.get(folder, folder)
Sieht komplizierter aus, als es ist. Wer kein GMail verwendet, braucht
es auch nicht. Hier werden auf dem Laptop die sonst sehr umständlichen
Ordnernamen von GMail ([GMail]/Entwürfe
) in bequemere Namen übersetzt,
also etwa drafts
. Danach werden dann die Ordner auf dem Laptop auch
benannt und man kann diese im mutt
und seiner Konfiguration einfacher
ansprechen.
[Repository PrivatRemote]
type = Gmail
#type = IMAP
Der entfernte Mail-Speicher, also das Konto bei GMail oder auf dem
Mailserver. Als Typ habe ich Gmail gewählt, dann macht offlineimap
ein
paar GMail-spezifische Sachen, um nicht so stark gedrosselt zu werden.
Wer kein GMail verwendet, kann hier IMAP sagen.
remotehost = imap.googlemail.com
remoteuser = [email protected]
Die Zugangsdaten müssen natürlich wieder angepasst werden.
remotepasseval = get_password('[email protected]')
get_password
ist eine Funktion aus dem Wrapper kr.py und soll das
Passwort aus dem Keyring holen.
ssl = yes
Verschlüsselung ist notwendig. Standard wäre hier wohl TLS, hat bei mir mit GMail aber nicht so gut funktioniert, daher SSL
maxconnections = 1
Wer bei GMail mehr als eine Verbindung gleichzeitig macht, wird gedrosselt. Wer kein GMail verwendet, kann mit mehreren parallel aufgebauten Verbidungen so etwas höhere Synchronisationsgeschwindigkeit erzielen.
realdelete = no
Bei GMail ist Löschen von Mails über IMAP nicht Löschen sondern das
entfernen des “Labels” (“Posteingang” ist auch ein Label), die Mails
sind also trotzdem noch unter “Alle Nachrichten”. Zum tatsächlichen
Löschen von Mails muss man in der Konfiguration von mutt
ein Shortcut
machen, dazu später mehr.
nametrans = lambda folder: {'[Gmail]/Entw&APw-rfe': 'drafts',
'[Gmail]/Gesendet': 'sent',
'[Gmail]/Markiert': 'flagged',
'[Gmail]/Papierkorb': 'trash',
'[Gmail]/Alle Nachrichten': 'archiv',
}.get(folder, folder)
Wieder die selbe Übersetzung wie oben, diesmal anders herum.
sslcacertfile = /etc/ssl/certs/ca-certificates.crt
Sonst bekommt man eine Zertifikatswarnung, wenn man offlineimap
laufen
lässt.
Ich habe die Konfiguration nach /home/emma/.mutt/offineimaprc gespeichert und in#s Heimverzeichnis verlinkt:
ln -s /hom/emma/.mutt/offlineimaprc ~/.offlineimaprc
Danach kann man die erste Synchronisation anwerfen:
offlineimap
Das wird seine Zeit dauern, bei vielen Mails mehrere Stunden. Zu Bedenken ist, dass eine Mail bei Google in mehreren Labels gleichzeitig sein kann, außerdem noch in virtuellen Labels wie “Gesendet”, “Wichtig”, “Markiert” und “Alle Nachrichten”. Der tatsächliche Festplattenverbrauch der Mails und die übertragene Datenmenge sind also um einiges höher als die in GMail angegebene Speicherbelegung.
notmuch
Die Suchfunktion von mutt
funktioniert recht einfach, mit der Suche in
mehreren Ordnern oder im Fließtext von Mails sollte man aber doch lieber
notmuch vertrauen. Dabei handelt es sich um einen Indexer und eine
Suchfunktion für die Kommandozeile, der sich dadurch natürlich auch gut
inmut
integrieren lässt - nach Aufruf über ein Makro wird ein neues
maildir versucht, gefüllt mit symbolischen Links zu den Suchergebnissen.
Das Setup ist recht einfach:
notmuch setup
Die notwendigen Daten müssen eingegeben werden, dann wird die Konfigurationsdatei automatisch erstellt. Nach erfolgreicher Konfiguration muss zum ersten Mal der Index erstellt werden:
notmuch new
Der selbe Befehl sollte auch alle Nase lang mal ausgeführt werden, um
neue Mails in den Index aufzunehmen und gelöschte daraus zu entfernen.
Jetzt kann man auch in der offlineimaprc die Zeile mit dem
postsynchook
aktivieren - nach jeder Synchronisation wird dann auch
automatisch die Suche aktualisiert.
Der Aufruf aus mutt braucht noch einen wrapper:
mutt-notmuch.py
(von Honza Pokorny) muss nach
/home/emma/.mutt/scripts/mutt-notmuch.py
kopiert werden.
mutt
Ab einer gewissen Größe der Konfigurationsdatei empfiehlt es sich, diese
in mehrere Dateien aufzuteilen, nach Inhalt sortiert. Ich habe mir daher
noch ein Unterverzeichnis angelegt: ~/.mutt/config.d/
Zusammenfassung
Hier werden die Teilkonfigurationen eingebunden. Die Pfade muss man
natürlich anpassen. Unter einigen System kann es notwendig sein, die
muttrc
unter ~/.muttrc
zu haben - geht natürlich auch als Symlink.
~/.mutt/muttrc
source /home/emma/.mutt/config.d/general
source /home/emma/.mutt/config.d/account
source /home/emma/.mutt/config.d/gmail
source /home/emma/.mutt/config.d/display
source /home/emma/.mutt/config.d/bindings
source /home/emma/.mutt/config.d/behaviour
source /home/emma/.mutt/config.d/pgp
Allgemein:
~/.mutt/config.d/general
# Maildirs verwenden statt mbox-Dateien
set mbox_type = Maildir
# Hauptverzeichnis der Mails
set folder = ~/.mail
# für lokale Adressen oder Abkürzungen
set alias_file = ~/.mutt/alias
# Zwischenspeicher für Kopfzeilen
set header_cache = ~/.mutt/cache/headers/
# Zwischenspeicher für Nachrichteninhalte
set message_cachedir = ~/.mutt/cache/bodies/
# temporäre Dateien
set tmpdir = ~/.mutt/temp
# keine Trennzeile zwischen Signatur und Text
# Sollte dafür in die Signatur rein! Vor die Signatur eine Zeile mit
# "-- "
set sig_dashes = no
# In diese Datei kommt die Signatur:
set signature = ~/.mutt/sig
# nach einigen Befehlen nicht auf Bestätigung warten
set wait_key = no
# Nur drei Sekunden auf Bestätigungen an anderen Stellen warten
set timeout = 3
# Gelesene Mails nicht anbieten, ins Archiv zu verschieben
unset move
# Mails ohne zu fragen löschen
set delete
# nicht fragen beim Verschieben von Mails
unset confirmappend
# nicht Fragen beim Beenden von mutt
set quit
# mails nicht als "alt" markieren
unset mark_old
# beim Suchen auch mit Umlauten usw klar kommen (dekodiert Header etc)
set thorough_search
Accountspezifische Einstellungen
~/.mutt/config.d/account
Hier muss man natürlich jeweils die eigenen Namen eintragen:
# Mailadresse
set from = "[email protected]"
# Name im Absender
set realname = "Emma Heinle"
# SMTP Server
set smtp_url = "smtp://[email protected]@smtp.googlemail.com:587/"
# Passwort wird aus dem Keyring geholt, Pfad anpassen!
set smtp_pass = `/home/emma/.mutt/scripts/kr.py get [email protected]`
# INBOX festlegen, wird als erstes geöffnet
set spoolfile = "+emma-heinle.cc/INBOX"
# diese Verzeichnisse werden von mutt auf neue Mails überwacht
# mit sidebar-patch erscheinen sie auch in der Sidebar.
# Die jeweiligen Ordner muss man natürlich anpassen.
# alle außer der letzten Zeile brauchen hinten den Backslash
# der Eintrag search zeigt auf die Suchergebnisse von notmuch
mailboxes +emma-heinle.cc/INBOX \
+emma-heinle.cc/Benachrichtigungen \
+emma-heinle.cc/IFTTT \
+search
# Mailarchiv
set mbox = "+emma-heinle.cc/archiv"
# Entwürfe hier hin speichern
set postponed = "+emma-heinle.cc/drafts"
Gmail-spezifische Einstellungen
Wer kein GMail verwendet, kann das rauslassen. Die Ordner müssen natürlich angepasst werden.
~/.mutt/config.d/gmail
# Suche im Adressbuch von GMail
set query_command="/home/emma/.mutt/scripts/gb_wrap.sh '%s'"
# mit y Mails archivieren
macro index,pager y "<enter-command>unset trash\n <delete-message>" "Gmail archive message"
# tatsächliches Löschen von Mails ist mit GMail und IMAP wie gesagt etwas komplizierter. Darum konfigurieren wir hier das Verschieben in den Papierkorb.
macro index,pager d "<enter-command>set trash=+emma-heinle.cc/trash\n <delete-message>" "Gmail delete message"
Anzeige-Einstellungen
~/.mutt/config.d/display
# Aussehen der Sidebar. Funktioniert nur mit mutt-pached
set sidebar_delim = ' │'
set sidebar_visible = yes
set sidebar_width = 24
color sidebar_new color221 color233
# Was für Details über die Mails angezeigt werden sollen
ignore *
unignore from: to: cc: date: subject:
# Und in welcher Reihenfolge
unhdr_order *
hdr_order from: to: cc: date: subject:
# Deutsches Datumsformat
set date_format = "%d.%m.%y"
set locale=de_DE.UTF-8
# wie eine Mail in der Übersicht aussehen soll, siehe man muttrc
set index_format = "[%Z] %D %-20.20F %s"
# Konversationen zusammenfügen
set sort = threads
# neueste Mail oben
set sort_aux = reverse-last-date-received
# Etwas Kontext für die angezeigte Mail
set pager_index_lines = 10
# Etwas Kontext für die angezeigte Seite der Mail-Übersicht
set pager_context = 3
# nicht automatisch zur nächsten Mail weiterscrollen
set pager_stop
# wie vim das Ende der Mail mit ~ anzeigen
set tilde
# keine Pluszeichen bei Zeilenumbruch
unset markers
# Zitate erkennen
set quote_regexp = "^( {0,4}[>|:#%]| {0,4}[a-z0-9]+[>|]+)+"
# zuerst plaintext anzeigen, dann erst html
alternative_order text/plain text/enriched text/html
# falls kein Zeichensatz mitgeschickt wird
set assumed_charset = 'utf-8:iso8859-15'
Tastenbelegungen
Die wichtigsten Details:
- R = allen Antworten
- Space = Thread einfalten
- O = alle mails synchronisieren, o = nur die ausgewählten Mailboxen synchronisieren
- C = Mail kopieren, M = Mail verschieben
- S = Suche mit notmuch starten
- Strg+U öffnet eine Liste der URLs in der Mail zum einfachen Aufrufen
- Mit b kann man die Sidebar ein/ausblenden, Mail bouncen geht mit B
Navigation:
- die Pfeiltasten Hoch/Runter navigieren die Sidebar, Rechts öffnet den Ordner
- wie in vim: gg = nach vorn, G = zum Schluss
- j/k scrollt hoch/runter, n und p springt Mails vor/zurück
~/.mutt/config.d/bindings
Die Ordner müssen natürlich wieder angepasst werden.
bind index,pager <down> sidebar-next
bind index,pager <up> sidebar-prev
bind index,pager <right> sidebar-open
bind index gg first-entry
bind index G last-entry
bind index R group-reply
bind index <tab> sync-mailbox
bind index <space> collapse-thread
macro index O "<shell-escape>offlineimap<enter>"
macro index o "<shell-escape>offlineimap -qf INBOX,Benachrichtigungen,IFTTT<enter>"
macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"
macro index S "<enter-command>unset wait_key<enter><shell-escape>/home/emma/.mutt/scripts/mutt-notmuch.py ~/.mail /search<enter><change-folder-readonly>+search<enter>" "search mail (using notmuch)"
macro index b '<enter-command>toggle sidebar_visible<enter><r
macro pager b '<enter-command>toggle sidebar_visible<enter><r
bind index B bounce-message
bind pager k previous-line
bind pager j next-line
bind pager n next-undeleted
bind pager p previous-undeleted
bind pager gg top
bind pager G bottom
bind pager R group-reply
bind attach <return> view-mailcap
macro pager \Cu "|urlview<enter>" "call urlview to open links"
Verhalten
Verschiedene Einstellungen zu mutts
Verhalten
~/.mutt/config.d/behaviour
# öffnet direkt den Editor, Empfänger usw wird dann dort eingetragen
set autoedit
set edit_headers
set fast_reply
# Betreff für Weiterleitungen
set forward_format = "Fwd: %s"
set forward_decode
# Falls jemand Reply-To: setzt, das auch beachten
set reply_to
# Zitieren beim Antworten
set include
# Zitieren beim Weiterleiten
set forward_quote
# Beim Senden folgende Zeichensätze versuchen
set send_charset = 'us-ascii:iso-8859-15:utf-8'
# Dieses Mail-Format ist in manchen Mailprogrammen schöner
set text_flowed = yes
# Nicht mitschicken dass/welches mutt verwendet wird
set user_agent = no
# um einzustellen, welche Programme zum Betrachten von Anhängen verwendet werden
set mailcap_path = /home/emma/.mutt/config.d/mailcap
PGP
PGP muss schon eingerichtet sein und funktionieren!
~/.mutt/config.d/pgp
set pgp_decode_command="gpg %?p?--passphrase-fd 0? --no-verbose --batch --output - %f"
set pgp_verify_command="gpg --no-verbose --batch --output - --verify %s %f"
set pgp_decrypt_command="gpg --passphrase-fd 0 --no-verbose --batch --output - %f"
set pgp_sign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --detach-sign --textmode %?a?-u %a? %f"
set pgp_clearsign_command="gpg --no-verbose --batch --output - --passphrase-fd 0 --armor --textmode --clearsign %?a? -u %a? %f"
set pgp_import_command="gpg --no-verbose --import -v %f"
set pgp_export_command="gpg --no-verbose --export --armor %r"
set pgp_verify_key_command="gpg --no-verbose --batch --fingerprint --check-sigs %r"
set pgp_list_pubring_command="gpg --no-verbose --batch --with-colons --list-keys %r"
set pgp_list_secring_command="gpg --no-verbose --batch --with-colons --list-secret-keys %r"
set pgp_timeout=60
set pgp_good_sign="^gpg: Good signature from"
set crypt_replysign
set crypt_replyencrypt=yes
set crypt_verify_sig=yes
Attachments öffnen
~/.mutt/config.d/mailcap
Mit diesen beiden MIME-Types erschlägt man fast alle Anhänge und lässt sie mit den Standardprogrammen der Desktopumgebung öffnen:
application/*; xdg-open %s
image/*; xdg-open %s
libnotify
Wer automatische Benachrichtigung bei neuen Mails in einem Ordner wünscht, kann das Script verwenden, was ich dazu geschrieben habe:
notif.py Angepasse werden muss dabei natürlich die Zeile mit den zu überwachenden Maildirs:
MAILDIRS = [
'/home/emma/.mail/emma-heinle.cc/INBOX/new/',
]
Das Script kann mit ./notif.py
aus dem Ordner heraus gestartet werden,
in dem es liegt. Beenden kann man es einfach mit kill
.
Für jede zu überwachende Mailbox muss eine neue Zeile vor die schließende eckige Klammer gesetzt werden, in Anführungsstrichen natürlich und mit Komma am Ende.
Damit die automatische Benachrichtigung funktioniert, muss man
offlineimap
natürlich regelmäßig ausführen lassen. Dazu kann man etwa
in der offlineimaprc
in der [Account]
-Sektion noch die Option
autorefresh = 5
setzen. Dann beendet sich offlineimap
nicht mehr und
man sollte es natürlich auch nicht mehr aus mutt
heraus aufrufen
sondern im eigenen Terminal
Interessante Lektüre
man muttrc
für alle Konfigurationseinstellungen (mutt
)/usr/share/docs/offlineimap/examples/offlineimap.conf.gz
(offlineimap
)- Wikipedia: Maildir zum Format, in dem die Mails auf der Festplatte liegen
- Das github-Repo mit meiner Konfiguration