Ich bin ein Mutt-Benutzer. Ich mag es, E-Mails bequem von meinem Linux-Terminal aus anzuzeigen und zu verfassen. Mit einem leichten und minimalistischen Client wie Mutt weiß ich, dass ich meine E-Mails unabhängig von Systemspezifikationen oder Internetzugang verfügbar haben kann. Und weil ich meistens ein Linux-Terminal geöffnet habe, hat mein E-Mail-Client im Wesentlichen keinen Fußabdruck auf meinem Desktop. Es ist in einer Terminal-Registerkarte oder einem Multiplexer-Fenster versteckt, sodass ich es ignorieren kann, wenn ich es nicht brauche, aber schnell darauf zugreifen kann, wenn ich es brauche.
Ein häufig wahrgenommenes Problem bei Mutt ist, dass die meisten von uns heutzutage gehostete E-Mail-Konten verwenden und nur oberflächlich mit tatsächlichen E-Mail-Protokollen interagieren. Mutt (und ELM davor) wurde in einfacheren Zeiten erstellt, als das Überprüfen von E-Mails ein Aufruf an . war uucp
und ein Blick auf /var/mail
. Es ist jedoch gut an die Entwicklung von Technologien angepasst und funktioniert gut mit allen möglichen modernen Protokollen wie POP, IMAP und sogar LDAP, sodass Sie Mutt auch dann verwenden können, wenn Sie Gmail als E-Mail-Host verwenden.
Da es heute relativ selten vorkommt, einen eigenen E-Mail-Server zu betreiben und Gmail sehr verbreitet ist, wird in diesem Tutorial davon ausgegangen, dass Sie Mutt mit Gmail verwenden. Wenn Sie sich Sorgen um den E-Mail-Datenschutz machen, sollten Sie ein Konto bei ProtonMail oder Tutanota eröffnen, die beide vollständig verschlüsselte E-Mails bereitstellen. Tutanota verfügt über viele Open-Source-Komponenten, und ProtonMail bietet eine IMAP-Brücke für zahlende Benutzer, damit Sie nicht um den Zugriff auf Ihre E-Mails außerhalb eines Browsers herumkommen müssen. Viele Unternehmen, Schulen und Organisationen betreiben jedoch keine eigenen E-Mail-Dienste und verwenden nur Gmail, sodass Sie möglicherweise ein Gmail-Konto haben, ob Sie eines möchten oder nicht.
Wenn Sie Ihren eigenen E-Mail-Server betreiben, ist die Einrichtung von Mutt noch einfacher als das, was ich in diesem Artikel demonstriere, also tauchen Sie einfach ein.
Mutt installieren
Unter Linux können Sie Mutt aus dem Software-Repository Ihrer Distribution installieren und dann ein .mutt
Verzeichnis, um seine Konfigurationsdateien zu speichern:
$ sudo dnf install mutt
$ mkdir ~/.mutt
Verwenden Sie unter macOS MacPorts oder Homebrew. Verwenden Sie unter Windows Chocolatey.
Mutt ist ein Mail User Agent (MUA), was bedeutet, dass seine Aufgabe darin besteht, E-Mails zu lesen, zu verfassen und an eine ausgehende Mail-Spool zu senden. Es ist die Aufgabe einer anderen Anwendung oder eines anderen Dienstes, eine Nachricht tatsächlich zu oder von einem Mailserver zu übertragen (obwohl Mutt viel integriert hat, so dass es so aussieht, als würde es die ganze Arbeit erledigen, auch wenn dies nicht der Fall ist.) Diese Aufgabentrennung verstehen kann dazu beitragen, dass die Konfiguration ein wenig mehr Sinn macht.
Es erklärt auch, warum Sie (zusätzlich zu Mutt) über Hilfsanwendungen verfügen müssen, je nachdem, mit welchem Dienst Sie kommunizieren müssen. Für diesen Artikel verwende ich IMAP, damit meine lokale E-Mail-Kopie und die Remote-Mail-Kopie meines E-Mail-Anbieters synchronisiert bleiben. Sollten Sie sich stattdessen für POP entscheiden, ist diese Konfiguration noch einfacher zu konfigurieren und kann ohne externe Tools durchgeführt werden. Die IMAP-Integration erfordert jedoch OfflineIMAP, eine Python-Anwendung, die in ihrem GitHub-Repository verfügbar ist.
Schließlich können Sie es mit dem installieren python3 -m pip
Befehl, aber zum jetzigen Zeitpunkt müssen Sie OfflineIMAP manuell installieren, da es noch von Python 2 auf Python 3 portiert wird.
OfflineIMAP erfordert imaplib2
, die sich ebenfalls in der Entwicklung befindet, daher bevorzuge ich auch eine manuelle Installation davon. Der Vorgang ist der gleiche: das Quellcode-Repository mit Git klonen, in das Verzeichnis wechseln und mit installieren pip
.
Installieren Sie zuerst die rfc6555
Abhängigkeit:
$ python3 -m pip install --user rfc6555
Als nächstes installieren Sie imaplib2
aus Quelle:
$ git clone git@github.com:jazzband/imaplib2.git
$ pushd imaplib2.git
$ python3 -m pip install --upgrade --user .
$ popd
Installieren Sie schließlich OfflineIMAP von der Quelle:
$ git clone git@github.com:OfflineIMAP/offlineimap3.git
$ pushd offlineimap3.git
$ python3 -m pip install --upgrade --user .
$ popd
Wenn Sie Cygwin unter Windows verwenden, müssen Sie auch Portalocker installieren.
OfflineIMAP konfigurieren
OfflineIMAP liest die Konfigurationsdatei ~/.offlineimaprc
standardmäßig. Eine Vorlage für diese Datei namens offlineimap.conf
, ist im Git-Repository enthalten, das Sie geklont haben, um OfflineIMAP zu installieren. Verschieben Sie die Beispieldatei in Ihr Home-Verzeichnis:
$ mv offlineimap3.git/offlineimap.conf ~/.offlineimaprc
Öffnen Sie die Datei in Ihrem bevorzugten Texteditor und lesen Sie sie durch. Es ist eine gut kommentierte Datei, und es ist gut, sich mit den verfügbaren Optionen vertraut zu machen.
Hier ist meins .offlineimaprc
als Beispiel, wobei Kommentare der Kürze halber entfernt wurden. Einige Werte können für Sie etwas anders sein, aber dies gibt Ihnen eine vernünftige Vorstellung davon, wie Ihr Endprodukt aussehen sollte:
[general]
ui = ttyui
accounts = %your-gmail-username%
pythonfile = ~/.mutt/password_prompt.py
fsync = False
[Account %your-gmail-username%]
localrepository = %your-gmail-username%-Local
remoterepository = %your-gmail-username%-Remote
status_backend = sqlite
postsynchook = notmuch new
[Repository %your-gmail-username%-Local]
type = Maildir
localfolders = ~/.mail/%your-gmail-username%-gmail.com
nametrans = lambda folder: {'drafts': '[Gmail]/Drafts',
'sent': '[Gmail]/Sent Mail',
'flagged': '[Gmail]/Starred',
'trash': '[Gmail]/Trash',
'archive': '[Gmail]/All Mail',
}.get(folder, folder)
[Repository %your-gmail-username%-Remote]
maxconnections = 1
type = Gmail
remoteuser = %your-gmail-username%@gmail.com
remotepasseval="%your-gmail-API-password%"
## remotepasseval = get_api_pass()
sslcacertfile = /etc/ssl/certs/ca-bundle.crt
realdelete = no
nametrans = lambda folder: {'[Gmail]/Drafts': 'drafts',
'[Gmail]/Sent Mail': 'sent',
'[Gmail]/Starred': 'flagged',
'[Gmail]/Trash': 'trash',
'[Gmail]/All Mail': 'archive',
}.get(folder, folder)
folderfilter = lambda folder: folder not in ['[Gmail]/Trash',
'[Gmail]/Important',
'[Gmail]/Spam',
]
Diese Datei enthält zwei ersetzbare Werte: %your-gmail-username%
und %your-gmail-API-password%
. Ersetzen Sie den ersten durch Ihren Gmail-Benutzernamen. Das ist der Teil Ihrer E-Mail-Adresse links neben dem @gmail.com
Teil. Sie müssen den zweiten Wert von Google durch einen Einrichtungsprozess mit Zwei-Faktor-Authentifizierung (2FA) abrufen (auch wenn Sie 2FA nicht zum Abrufen von E-Mails verwenden müssen).
2FA für Gmail einrichten
Google erwartet von seinen Nutzern, dass sie die Gmail-Website für E-Mails verwenden. Wenn Sie also versuchen, außerhalb der Gmail-Benutzeroberfläche auf Ihre E-Mails zuzugreifen, tun Sie dies im Wesentlichen als Entwickler (auch wenn Sie sich selbst nicht als Entwickler betrachten). Mit anderen Worten, Sie erstellen etwas, das Google als “App” bezeichnet. Um eine Entwicklerebene zu erhalten App-Passwort, müssen Sie 2FA einrichten; Durch diesen Vorgang erhalten Sie ein App-Passwort, mit dem sich Mutt außerhalb der üblichen Browseroberfläche einloggen kann.
Aus Sicherheitsgründen können Sie auch eine Wiederherstellungs-E-Mail-Adresse hinzufügen. Rufen Sie dazu die Seite Kontosicherheit von Google auf und scrollen Sie nach unten zu Wiederherstellungs-E-Mail.
Um 2FA einzurichten, gehen Sie zurück zur Seite Kontosicherheit und klicken Sie auf Bestätigung in zwei Schritten aktivieren und konfigurieren. Dies erfordert ein Mobiltelefon zur Einrichtung.
Nach der Aktivierung von 2FA erhalten Sie eine neue Option für die Google-Kontosicherheit: App-Passwörter. Klicken Sie darauf, um ein neues App-Passwort für Mutt zu erstellen. Google generiert das Passwort für Sie, also kopieren Sie es und fügen Sie es in Ihr . ein .offlineimaprc
Datei an der Stelle der %your-gmail-API-password%
Wert.
Platzieren Sie Ihr API-Passwort in Ihrem .offlineimaprc
Datei speichert sie im Klartext, was gefährlich sein kann. Ich habe das lange Zeit gemacht und mich dabei wohl gefühlt, weil mein Home-Verzeichnis verschlüsselt ist. Allerdings verschlüssele ich im Interesse einer besseren Sicherheit mein API-Passwort jetzt mit GnuPG. Das würde den Rahmen dieses Artikels etwas sprengen, aber ich habe einen Artikel geschrieben, der zeigt, wie man die GPG-Passwortintegration einrichtet.
IMAP in Gmail aktivieren
Bevor Sie sich für immer von der Gmail-Weboberfläche verabschieden können, gibt es noch eine letzte Sache: Sie müssen den IMAP-Zugriff auf Ihr Gmail-Konto aktivieren.
Rufen Sie dazu die Gmail-Weboberfläche auf, klicken Sie auf das Zahnradsymbol in der oberen rechten Ecke und wählen Sie Alle Einstellungen anzeigen. In Google Mail Einstellungen, drücke den POP/IMAP Registerkarte und aktivieren Sie das Optionsfeld neben IMAP aktivieren. Speichern Sie Ihre Einstellungen.
Gmail ist jetzt so konfiguriert, dass Sie außerhalb eines Webbrowsers auf Ihre E-Mails zugreifen können.
Mutt konfigurieren
Nun, da Sie alles für Mutt eingerichtet haben, werden Sie froh sein zu erfahren, dass die Konfiguration von Mutt der einfache Teil ist. Wie bei .bashrc-, .zshrc- und .emacs-Dateien gibt es im Internet viele Beispiele für sehr gute .muttrc-Dateien. Für meine Konfigurationsdatei habe ich mir Optionen und Ideen von ausgeliehen Kyle Rankin, Paul Freunde, und viele andere, daher habe ich meine .muttrc-Datei der Einfachheit halber auf das Wesentliche gekürzt:
set ssl_starttls=yes
set ssl_force_tls=yes
set from='[email protected]'
set realname="Tux Example"
set folder = imaps://imap.gmail.com/
set spoolfile = imaps://imap.gmail.com/INBOX
set postponed="imaps://imap.gmail.com/[Gmail]/Drafts"
set smtp_url="smtp://smtp.gmail.com:25"
set move = no
set imap_keepalive = 900
set record="imaps://imap.gmail.com/[Gmail]/Sent Mail"
# Paths
set folder = ~/.mail
set alias_file = ~/.mutt/alias
set header_cache = "~/.mutt/cache/headers"
set message_cachedir = "~/.mutt/cache/bodies"
set certificate_file = ~/.mutt/certificates
set mailcap_path = ~/.mutt/mailcap
set tmpdir = ~/.mutt/temp
set signature = ~/.mutt/sig
set sig_on_top = yes
# Basic Options
set wait_key = no
set mbox_type = Maildir
unset move # gmail does that
# Sidebar Patch
set sidebar_visible = yes
set sidebar_width = 16
color sidebar_new color221 color233
## Account Settings
# Default inbox
set spoolfile = "+example.com/INBOX"
# Mailboxes to show in the sidebar.
mailboxes +INBOX
+sent
+drafts
# Other special folder
set postponed = "+example.com/drafts"
# navigation
macro index gi "<change-folder>=example.com/INBOX<enter>" "Go to inbox"
macro index gt "<change-folder>=example.com/sent" "View sent"
Nichts in dieser Datei muss geändert werden, aber erwägen Sie, den falschen Namen zu ersetzen Tux Example
und die gefälschte adresse example.com
mit etwas, das auf dich zutrifft. Kopieren Sie diesen Text, fügen Sie ihn in eine Datei ein und speichern Sie ihn unter ~/.mutt/muttrc
.
Mutt starten
Führen Sie vor dem Start von Mutt offlineimap
von einem Terminal aus, um Ihren Computer mit dem Remote-Server zu synchronisieren. Der erste Durchlauf davon dauert eine lange Zeit, also über Nacht laufen lassen.
Sobald Ihr Konto synchronisiert ist, können Sie Mutt starten:
$ mutt
Mutt bittet Sie um Erlaubnis, die Verzeichnisse zu erstellen, die es zum Organisieren Ihrer E-Mail-Aktivitäten benötigt, und zeigt dann eine Ansicht Ihres Posteingangs an.
mutt.png
Mutt lernen
Learning Mutt ist eine Mischung aus dem Erkunden der Anwendung und dem Finden Ihrer Lieblingshacks für Ihre .muttrc-Konfiguration. Zum Beispiel integriert meine Konfigurationsdatei Emacs zum Verfassen von Nachrichten, LDAP zum Durchsuchen von Kontakten, GnuPG zum Ver- und Entschlüsseln von Nachrichten, Link Harvesting, HTML-Ansichten und vieles mehr. Sie können Mutt zu allem machen, was Sie wollen (solange es ein E-Mail-Client sein soll), und je mehr Sie experimentieren, desto mehr entdecken Sie.