[[Vorlage(Getestet, Bionic, Focal, Jammy)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:Rechte: Rechte für Dateien und Ordner ändern] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] [https://neomutt.org NeoMutt] {en} ist ein textbasierter E-Mail-Client für die Konsole. Das Programm ist ein [https://neomutt.org/about.html Fork] {en} von Mutt, welcher einige Patches der Community integriert. Es handelt sich in erster Linie um [wikipedia:E-Mail-Programm:MailUserAgents], die externe Programme für das Senden ([wikipedia:Mail_Transfer_Agent:MTA]) bzw. den Empfang ([wikipedia:Mail_Delivery_Agent:MDA] und [wikipedia_en:Mail_retrieval_agent:MRA]) verwenden. Die in den Ubuntu Quellen bereitgestellten binaries sind mit IMAP bzw. SMTP Support compiliert, sodass diese externen Programme nicht mehr zwingend zum Einsatz kommen müssen. Der vorliegende Artikel konzentriert sich auf NeoMutt, ist aber in weiten Teilen für Mutt ebenso anwendbar. Er zielt darauf ab, die Einstiegshürde zu entschärfen und die anfängliche Verwirrung in Bezug auf die Funktionsweise zu minimieren. Um die ganze Breite vorhandener Konfigurationsmöglichkeiten auszuschöpfen, empfiehlt sich eine Konsultation der [:man:] page von '''neomuttrc''' und der zahlreichen in den Links angegebenen Quellen, wobei insbesondere das Arch wiki einen reichen Born sinnvoller Einstellungen bietet. [[Bild(./Bildschirmfoto.png, 250, right)]] = Einrichtung = == Installation == NeoMutt befinden sich in den Quellen. {{{#!vorlage Paketinstallation neomutt, universe }}} Um in Erfahrung zu bringen, mit welchen Optionen kompiliert wurde, nutze man die option `-v` {{{#!vorlage Befehl neomutt -v }}} Das Programm `mutt` ist über das Paket '''mutt''' ebenfalls aus den offiziellen Paketquellen installierbar. == OAuth2 == Es gibt aktuell kaum noch Provider, die reine Nutzername/Passwort-Authentifizierung erlauben. Neomutt kann aber mit OAuth2 umgehen – es empfiehlt sich, die aktuelle Version des Scripts herunterzuladen. Anbei befindet sich auch eine (englische) Anleitung, wie man die Einrichtung beim Provider durchführt: [https://github.com/neomutt/neomutt/tree/main/contrib/oauth2] == Passwörter == Grundsätzlich kann man Passwörter auf verschiedene Weise bereitstellen: * via [:GNOME_Schlüsselbund/:GNOME Schlüsselbund] * GPG-verschlüsselt * Klartext {{{#!vorlage Hinweis Falls sich Sonderzeichen wie `$`, `'` oder `"` im Passwortstring befinden, kann das zu unvorhergesehenen Problemen führen, die unspezifische Fehlermeldungen produzieren. }}} === Gnome Keyring === Um den Schlüsselbund von der Kommandozeile nutzen zu können, muss das entsprechende Tool installiert sein: {{{#!vorlage Paketinstallation libsecret-tools, universe }}} Folgender Befehl fügt exemplarisch ein Passwort in den Schlüsselbund ein. Die Angabe des Schlüssel-Wert-Paares `service smtp` ist für `msmtp` von Belang. Sollte das IMAP Passwort abweichen, ändere man im Duplikat einfach zu `service imap` und `--label=mutt`. {{{#!vorlage Befehl secret-tool store --label=msmtp host smtp.example.com service smtp user user@example.com }}} Das Auslesen via Kommandozeile erfolgt adäquat {{{#!vorlage Befehl secret-tool lookup user user@example.com }}} Alternativ kann auch [:Seahorse:] verwendet werden. === GPG === Folgender Befehl erstellt exemplarisch eine Passwortdatei. Zunächst wird der [:GPG-Agent:] nach dem Masterpasswort fragen. Dann gibt man das Passwort im Klartext auf der Konsole ein, gefolgt von Return (für neue Zeile) und STRG-D (für EOF) {{{#!vorlage Befehl gpg2 --output ~/config/mutt/password.my_account.gpg -c }}} === Klartext === Das Speichern von Passwörtern im Klartext ist nicht zu empfehlen, jeder Nutzer mit Root-Zugriff kann diese problemlos auslesen. Sollte es dennoch unumgänglich sein, sollten die Zugangsdaten in einer separaten Datei mit beschränkten Zugriffsrechten vorgehalten werden. == externer MTA == NeoMutt (und auch Mutt) sind in Ubuntu mit smtp-Unterstützung kompiliert, es kann aber auch ein externes Programm als [wikipedia:Mail_Transfer_Agent: MTA] eingesetzt werden, wie beispielsweise `msmtp`. Die [:man:manpage] ist informativ und enthält neben Beispielen auch Hinweise für die Konfiguration von NeoMutt. {{{#!vorlage Hinweis Die meisten Provider beenden ihre Unterstützung für Nutzername/Passwort-Authentifizierung. Es ist aber grundsätzlich möglich, `msmtp` mit oauth2 zu konfigurieren (siehe https://wiki.archlinux.org/title/Msmtp#OAuth2_Setup) }}} {{{#!vorlage Paketinstallation msmtp, universe msmtp-gnome, universe }}} Die Konfiguration geschieht über eine Datei. Es wird zunächst die benutzerspezifische, dann die systemweite Datei gesucht. Die entsprechenden Pfade bringt man per `--version` in Erfahrung: {{{#!vorlage Befehl msmtp --version }}} Für Ubuntu 19.04 liegt die Benutzerkonfigurationsdatei in `$HOME/.msmtprc`. Der einfachste Weg ist, sie von `/usr/share/doc/msmtp/examples/msmtprc-user.example` zu kopieren und anzupassen: {{{#!vorlage Befehl cp /usr/share/doc/msmtp/examples/msmtprc-user.example ~/.msmtprc editor ~/.msmtprc }}} {{{ #Exemplarische Konfiguration für einen posteo und einen google account defaults tls on tls_starttls on # Ausschalten falls Test mit »Server schickte leere Antwort« fehlschlägt auth on # auskommentieren, wenn gewünscht: #logfile ~/.msmtp.log # logging auf stdout #logfile - # journal #syslog on account gmail host smtp.gmail.com from login@gmail.com user login@gmail.com # setzen, wenn gpg2 als Methode benutzt wird #passwordeval gpg2 --no-tty -q -d ~/.msmtp-password.gmail.gpg account posteo host posteo.de from login@posteo.de user login@posteo.de # setzen, wenn gpg2 als Methode benutzt wird #passwordeval gpg2 --no-tty -q -d ~/.msmtp-password.gmail.gpg # posteo alias account alias : posteo from alias@posteo.de #Das Posteo Konto soll das Standard-Konto werden: account default: posteo # vim: set ft=msmtp: }}} {{{#!vorlage Hinweis Wenn das Passwort im gnome-keyring [:Mutt#Passwoerter:korrekt abgelegt] ist, fragt msmtp dieses automatisch ab. }}} Der Mailversand kann wie folgt getestet werden {{{#!vorlage Befehl msmtp -a posteo --logfile=- -- empfänger@adresse.de <1 "$folder" # vim: set ft=neomuttrc: }}} '''~/.neomutt/posteorc''' {{{ set from=login@posteo.de set realname="Log In" set imap_login="login@posteo.de" set imap_pass="`secret-tool lookup user login@posteo.de`" # falls kein externer MTA genutzt wird #set smtp_url="smtps://login@posteo.de:587/" #set smtp_pass="`secret-tool lookup user login@posteo.de`" set folder="imaps://posteo.de/" set spoolfile="=INBOX" mailboxes =INBOX # falls ein externer MRA genutzt wird #set folder="$HOME/Mail" #set spoolfile="=" #mailboxes = set postponed="=Entwürfe" set record="=Gesendet" set mbox="=Archiv" account-hook $folder "set imap_user=login@gmail.com imap_pass=$imap_pass" folder-hook $folder 'source ~/.neomutt/gmailrc' #macro index 2 "$folder" # vim: set ft=neomuttrc: }}} === vim bindings im pager === Um im Pager vim bindings zu haben, folgendes am besten in einer via '''source ~/.neomutt/bindings''' eingebundenen Datei definieren: '''~/.neomutt/bindings''' {{{ bind index G imap-fetch-mail bind pager j next-line bind pager k previous-line bind pager g top bind pager G bottom }}} Es ist mit (groß) [[Vorlage(Tasten, J)]] [[Vorlage(Tasten, K)]] noch möglich, gleichzeitig durch den Index zu scrollen. === HTML Emails === In Neomutt steht diese Funktion von Haus aus zur Verfügung, indem man in der entsprechenden Mail [[Vorlage(Tasten, v)]] drückt. ==== Anzeige mit Lynx oder w3m ==== Mailcap kann so konfiguriert werden, dass HTML Emails in-line mit [:Lynx:] oder [:w3m:] angezeigt werden: '''~/.mailcap''' {{{ text/html; /usr/bin/lynx -dump -width=100 -nolist %s; description=HTML Text; nametemplate=%s.html; copiousoutput; needsterminal; }}} oder '''~/.mailcap''' {{{ text/html; w3m -I %{charset} -T text/html; copiousoutput; }}} Um html mails automatisch anzuzeigen, muss in der neomutt config '''~/.neomutt/neomutt''' {{{ auto_view text/html }}} eingefügt werden. Das hat den Nachteil, dass als '''text/html''' markierte emails auch dann als HTML angezeigt werden, wenn sich reiner Text in den Bestandteilen der Mail befindet. Dies kann man via '''~/.neomutt/neomuttrc''' {{{ alternative_order text/enriched text/plain text/html text }}} abändern. ==== Fehler bei der Anzeige mit Firefox ==== Gelegentlich kommt es zu einem Fehler bei der Anzeige. Der Browser meldet dann '''File not found'''. In diesem Fall muss eine Verzögerung eingebaut werden: '''~/.mailcap''' {{{ text/html; /usr/bin/sensible-browser %s && sleep 1; description=HTML Text; nametemplate=%s.html }}} was der angepassten Zeile aus '''/etc/mailcap''' entspricht. === Links in Emails folgen === Hat man das Programm {{{#!vorlage Paketinstallation urlview, universe }}} installiert, kann man die Zeilen {{{macro index \cb |urlview\n macro pager \cb |urlview\n}}} zur Mutt-Konfiguration hinzufügen. Hat man jetzt eine E-Mail geöffnet, die eine Internetadresse enthält, kann man [[Vorlage(Tasten, Strg)]][[Vorlage(Tasten, b)]] drücken und damit die Urls im Browser öffnen. In Neomutt ist dies bereits voreingestellt. === Mehrere Identitäten === Bei vielen Anbietern kann man mehrere Identitäten haben. Bei der Beantwortung und Weiterleitung ist es bequem, gleich den richtigen Absender im Header zu haben: {{{ set reverse_name=yes # Einstellung steht im Konflikt zu `$my_hdr from` alternates ^login@example\.com$ ^alias@example\.com$ message-hook ~C'login@example\.com' 'set realname="Login"' message-hook ~C'alias@example\.com' 'set realname="Alias"' }}} = Bedienung = Neomutt wird über den Befehl {{{#!vorlage Befehl neomutt }}} gestartet. == Nützliche Befehle für den Einstieg == Es lohnt sich immer, einen Blick in die oberste Zeile zu werfen, dort werden einige verfügbare Befehle angezeigt. Es gilt zu beachten, dass sich die Tastenbelegungen in den verschiedenen Ansichten unterscheiden. Hat man beispielsweise eine Mail zum Lesen geöffnet, blendet [[Vorlage(Tasten, T)]] den zitierten Text ein und aus, während, wenn nur der Index sichtbar ist, die Funktion `tag-pattern` ausgeführt wird. ||<-2 rowclass="titel" tablestyle="zebra_start2" :>'''Im Index''' || || [[Vorlage(Tasten, ?)]] || Befehlsübersicht für die aktive Ansicht|| || [[Vorlage(Tasten, Enter)]] || Mailbox/E-Mail öffnen, Eingaben bestätigen, in E-Mails eine Zeile weiterblättern|| || [[Vorlage(Tasten, backspace)]] || In E-Mails zurückblättern|| || [[Vorlage(Tasten, space)]] || In E-Mails eine Seite weiterblättern bzw. nächste E-Mail öffnen|| || [[Vorlage(Tasten, -)]] || In E-Mails eine Seite zurückblättern|| || [[Vorlage(Tasten, y)]] || Liste der Mailboxen aufrufen|| || [[Vorlage(Tasten, c)]] || wechseln der Mailbox ([[Vorlage(Tasten, tab)]] Liefert eine Liste aller Mailboxen bzw. vervollständigt den Namen einer Mailbox)|| || [[Vorlage(Tasten, hoch)]],[[Vorlage(Tasten, runter)]] bzw. [[Vorlage(Tasten, k)]],[[Vorlage(Tasten, j)]]|| Zum Navigieren in Mailboxen|| || [[Vorlage(Tasten, Tab)]] || Zur nächsten ungelesenen Nachricht springen || || [[Vorlage(Tasten, =)]] || Zur ersten Nachricht springen || || [[Vorlage(Tasten, *)]] || Zur letzten Nachricht springen || || [[Vorlage(Tasten, /)]] || Nachricht suchen || || [[Vorlage(Tasten, l)]] || Ansicht auf bestimmte Nachrichten begrenzen || || [[Vorlage(Tasten, b)]] || Bounce – Nachricht weiterleiten ohne den Inhalt zu bearbeiten|| || [[Vorlage(Tasten, f)]] || Nachricht weiterleiten|| || [[Vorlage(Tasten, s)]] || Nachricht in einen anderen Ordne verschieben|| || [[Vorlage(Tasten, p)]] || [:GnuPG:GPG]-Menü öffnen|| || [[Vorlage(Tasten, a)]] || Absenderadresse in die Alias-Liste übernehmen|| || [[Vorlage(Tasten, m)]] || Mail verfassen|| || `$` || Mailbox synchronisieren || Beim Wechseln der Mailboxen mit [[Vorlage(Tasten, c)]][[Vorlage(Tasten, Tab)]] blättert jedes weitere [[Vorlage(Tasten, Tab)]] durch verschiedene Ansichten. Das selbe Verhalten zeigt die Liste der Mailboxen mit [[Vorlage(Tasten, y)]]. Dort lassen sich auch neue IMAP Ordner anlegen und löschen. Am Einfachsten allerdings legt man Ordner an, indem man bei [[Vorlage(Tasten, s)]] einen nicht existenten Zielpfad angibt. {{{#!vorlage Hinweis Bei der Angabe von Zielen muss bei IMAP statt `/` ein `.` geschrieben werden. Also statt `=mein/tief/verschachtelter/ordner` muss es heißen `=mein.tief.verschachtelter.ordner` }}} In NeoMutt lassen sich alle Tastaturbelegungen an die persönlichen Bedürfnisse anpassen. Für detaillierte Informationen über Konfiguration und Bedienung sei auf die Links verwiesen. == Shortcuts für Ordner == Beim Wechseln der Ordner ist es bequem, shortcuts einzusetzen. Beispielsweise führt [[Vorlage(Tasten, c)]][[Vorlage(Tasten, !)]] in den Posteingang. {{{#!vorlage Tabelle <-2 rowclass="titel" :>Folder Shortcuts +++ Variable <:>Shortcut +++ $folder `=`, `+` +++ $spoolfile `!` +++ $mbox `>` +++ $record `<` +++ last visit `!!`, `-` +++ $HOME `~` }}} == Adressbuch == Einen Kontakt kann man erstellen, indem man ihn einfach im Format {{{#!vorlage Befehl alias BEZEICHNUNG NAME DES KONTAKTES }}} in die Alias-Datei einträgt, oder in NeoMutt eine E-Mail des gewünschten Kontakts markiert und [[Vorlage(Tasten, a)]] drückt, oder mit dem Befehl {{{#!vorlage Befehl alias [ ]
}}} wobei das letzte leerzeichenseparierte Wort als Email-Adresse gilt. Nun kann man in NeoMutt als Empfänger einer neuen Mail statt der Adresse die Bezeichnung des Kontakts eingeben ([[Vorlage(Tasten, Tab)]] zur Vervollständigung). = Links = * [https://neomutt.org/ Projektseite von Neomutt] {en} * [gitlab:muttmua/mutt/-/wikis/home:Mutt Wiki mit vielen Resourcen] {en} * [http://www.mutt.org/ Projektseite von Mutt] {en} * [http://mutt.org/doc/manual/ Mutt-Handbuch] {en} * [https://wiki.archlinux.org/index.php/mutt Anleitung im Arch wiki] {en} * [sourceforge2:msmtp:Projektseite von msmtp] {en} * [sourceforge2:abook:] {en} - Adressbuch für Mutt * [https://blog.stefan-betz.net/2013/09/13/mutt-und-dieses-html/ Mutt und dieses HTML] {de} - Blogbeitrag, 09/2013 * [https://www.linux-community.de/ausgaben/linuxuser/2007/05/mutt-mit-allen-raffinessen-nutzen/ Mutt mit allen Raffinessen nutzen] {de} - Artikel LinuxUser, 05/2007 * [prolinux:artikel/2/955/mutt-konfiguration.html:Einrichtungsanleitung] {de} - auf Pro-Linux.de, 05/2003 * [https://www.linux-community.de/ausgaben/linuxuser/2008/05/mail-auf-der-kommandozeile/ mailx] {de} - alternative Möglichkeit, E-Mails (mit mailx) auf der Kommandozeile zu verschicken * [:Alpine:] – Weiterentwicklung von [wikipedia:Pine:] und Alternative zu Mutt; in den offiziellen Paketquellen enthalten # tag: Internet, Kommunikation, Email