Mail unter Linux
Allgemeines
- Wenn Sie beim Einloggen in eine Linux-Text-Session z.B. via ssh die Nachricht bekommen, dass Sie neue Mail haben ("You have new mail!"), können Sie die Mails mit
mail
abrufen. Die Mails befinden sich übrigens in/var/mail
und werden beim Lesen nach~/mbox
verschoben.
SMTP-Server
Allgemeines
Üblicherweise benutzt man zum Versenden von Mails einen Drittanbieter als Smarthost.
Beispielsweise bietet sich Arcor an, siehe
Siehe zum kompletten Aufbau eines Mailsystems inklusive Webfrontend:
- https://www.exratione.com/2012/05/a-mailserver-on-ubuntu-1204-postfix-dovecot-mysql/
- http://www.heinlein-support.de/blog/howto/tutorial-robuste-mailserver-einrichten/
Siehe zur Einrichtung von Postfix:
Einfacher MTA
Ein einfacher Mail Transfer Agent, der lediglich Mails über einen Smarthost versenden kann, hat den Vorteil, dass er wenig Sicherheitslücken öffnet.
In Betracht kommen z.B.
- Nullmailer
- ESMTP
- msmtp
- OpenSMTPd
- früher: SSMTP
Einfacher MTA mittels msmtp
Installieren mit
sudo aptitude install msmtp msmtp-mta
Schauen wo die Konfigurationsdateien sich befinden:
msmtp --version
Unter Ubuntu 20.04 Focal lautet der Pfad zur systemweiten Konfigurationsdatei /etc/msmtprc
und zur Benutzerkonfigurationsdatei: /home/david/.msmtprc
.
msmtp-Konfiguration für arcor.de/Vodafonemail
defaults # log to stdout logfile /var/log/msmtp # Arcor account EMAILADDRESS@arcor.de host smtp.vodafonemail.de port 587 tls on tls_starttls on auth on user EMAILADDRESS@arcor.de password GEHEIIM from EMAILADDRESS@arcor.de # Set a default account account default : EMAILADDRESS@arcor.de
Hinweis: Das Passwort ist hier im Klartext sichtbar. Daher zumindest die Konfigurationsdatei nur für den Benutzer sichtbar machen:
chmod 600 ~/.msmtp
msmtp-Konfiguration für googlemail
defaults # log to stdout logfile /var/log/msmtp # Googlemail account EMAILNAME@gmail.com host smtp.gmail.com port 587 tls on tls_starttls on auth on user EMAILNAME # passwordeval gpg --no-tty -q -d ~/.msmtp-password.gpg password GOOGLEAPPPASSWORD from EMAILNAME@gmail.com # Set a default account account default : EMAILNAME@gmail.com
Hinweis: Das Google-App-Passwort ist hier im Klartext sichtbar. Daher zumindest die Konfigurationsdatei nur für den Benutzer sichtbar machen:
chmod 600 ~/.msmtp
Außerdem sollte nicht das normale Google-Passwort genutzt werden, sondern ein speziell für diesen Zweck erstelltes App-Passwort. Dafür muss man in Google zunächst die Zwei-Faktor-Authentifizierung einrichten.
Benutzung
Erster Check der Konfiguration
msmtp --serverinfo
Dummy-Mail losschicken
msmtp -v EMPFAENGEREMAIL@BEISPIEL.DE <<EOF hallo von HERE EOF
Mit mail
aus mailutils muss man die Senderadresse angeben:
echo hallo | mail EMPFAENGEREMAIL@BEISPIEL.DE -aFrom:EMAILNAME@gmail.com --subject "Kreativer Betreff"
Einfacher MTA mittels SSMTP
Hinweis: SSMTP wird gegenwärtig nicht mehr gewartet.[1],[2] Mit SSMTP funktioniert angeblich auch die Konfiguration von GMX als Smarthost:[3],[4]
sudo aptitude install ssmtp bsd-mailx
Anpassen der /etc/ssmtp/ssmtp.conf
und /etc/ssmtp/revaliases
Googlemail als Smarthost funktioniert bei mir nur, wenn weniger sichere Apps zugelassen werden.[5]
Für crontab lässt sich mit Hilfe der Zeile
MAILTO=adresse@anbieter.org
Infos der folgenden cronjobs an die angegebene Email schicken.
Einfacher MTA mittels Postfix
Man kann auch mit Hilfe von Postfix einen einfachen MTA aufsetzen. Zur Installation benötigt man
sudo aptitude install postfix postfix-mysql libsasl2-modules
In
sudo dpkg-reconfigure postfix
wählt man das "Satelliten-System" (keine Mail empfangen, sondern nur über einen SmartHost versenden).
Um den Postfix-Versand für ein GMX-Konto einzurichten[6] (die gesamte Mail scheint dann von genau dieser einen Email-Adresse zu kommen), sind folgende Schritte nötig:
Angabe von mail.gmx.net
als SMTP-Relay-Server.
Folgender Dateiinhalt der /etc/postfix/main.cf
:
alias_database = hash:/etc/aliases inet_interfaces = loopback-only mailbox_size_limit = 0 relayhost = [mail.gmx.net]:587 sender_canonical_maps = hash:/etc/postfix/sender_canonical smtp_generic_maps = hash:/etc/postfix/generic smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_password smtp_sasl_security_options = noanonymous smtp_tls_security_level = encrypt
Die eckigen Klammern benötigte ich, weil ich ansonsten die Fehlermeldung
relay=none, delay=244208, delays=244208/0.01/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=mail.gmx.net type=MX: Host not found, try again)
bekam.[7]
Folgender Dateiinhalt der /etc/postfix/sasl_password
(PASSWORD durch Passwort bei GMX austauschen; bei USER ebenfalls)
mail.gmx.net USER@gmx.de:PASSWORD
Passwortdatei vor Zugriffen schützen:
sudo chmod 600 /etc/postfix/sasl_password
Passwortdatenbank erzeugen:
sudo postmap hash:/etc/postfix/sasl_password
Absenderdatei /etc/postfix/sender_canonical
root USER@gmx.de BENUTZER USER@gmx.de
und so weiter...
Absenderdatei in Datenbank übersetzen:
sudo postmap /etc/postfix/sender_canonical
Generics-Datei /etc/postfix/generic
:
BENUTZER@SERVERNAME USER@gmx.de
Generics-Datei übersetzen:
sudo postmap /etc/postfix/generic
Postfix neustarten:
sudo service postfix restart
Postfix mit Docker
Siehe
- Beispiel-Dockerfile mit Vorkonfiguration von postfix mittels debconf-set-selections und postconf
IMAP Server
IMAP Server gibt es mehrere, z.B.:
- Dovecot
- POP3Aggregator
- Folgende Dateien führen zum Passwort:
- /etc/dovecot/conf.d/10-auth.conf
- /etc/dovecot/conf.d/auth-passwdfile.conf.ext
- /etc/dovecot/passwd
Das Hochladen von Mails zu einem IMAP-Server ist in Opera recht einfach. Man zieht die Mails mit der Maus auf den IMAP-Ordner (z.B. INBOX).[8] Dabei ist jedoch zu beachten, dass zu viele Mails auf einmal einen Timeout des IMAP-Servers verursachen können.
Setup von Dovecot
sudo aptitude install dovecot
Erzeuge Mail-Verzeichnis:
mkdir ~/Maildir
Setze Mail-Verzeichnis in /etc/dovecot/conf.d/10-mail.conf
:[9]
mail_location = maildir:~/Maildir
Erzeuge Benutzerverzeichnis
echo "$USER:{PLAIN}password:$UID:$GROUPS::$HOME" > users sudo mv users /etc/dovecot/
Lege Benutzerverzeichnis als Authentifizierungsmethode in /etc/dovecot/conf.d/10-auth.conf
fest:
- Raute(#) vor
!include auth-system.conf.ext
- Rauten entfernen am Anfang von
#!include auth-passwdfile.conf.ext
Siehe http://wiki2.dovecot.org/BasicConfiguration
WebFrontend für IMAP
Web-Frontends für IMAP-Server sind ebenfalls nicht rar, z.B.:
RainLoop
RainLoop ist HTML5-basiert, unterstützt für Anhänge Drag&Drop. Er kann angeblich in OwnCloud integriert werden.
Siehe http://www.rainloop.net/
MailPile
SquirrelMail
SquirrelMail ist ein Webfrontend für IMAP mit etwas altmodischer Oberfläche, dafür aber ausgereift.
- SquirrelMail
- SquirrelMail ist so schlank, dass er nur das IMAP-Protokoll in vom Nutzer leicht lesbares Web-HTML übersetzt. Daher hat Squirrelmail keine eigenen Passwörter.
Installation[10]
sudo aptitude install squirrelmail-locales squirrelmail-decode
sudo ln -s /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail.conf sudo a2ensite squirrelmail sudo service apache2 reload
OpenWebMail
- OpenWebMail
RoundCube
Unter Ubuntu[11] installiert man es mit
sudo aptitude install roundcube roundcube-plugins mysql-server apache2 sudo dpkg-reconfigure roundcube-core
Erzeuge symbolischen Link:[12]
sudo ln -s /usr/share/roundcube /var/www/roundcube
Um TLS-verschlüsselte Verbindungen zum Server zu ermöglichen, muss das Präfix tls://
vor den IMAP-Servernamen gestellt werden (Ansonsten bekommt man die Fehlermeldung, dass die Verbindung zum Speicherserver [IMAP-Server] fehlgeschlagen sei). Dies geschieht in der Datei /etc/roundcube/mail.inc.php
:
$rcmail_config['default_host'] = array('ssl://mail.example.com:993');
Dazu muss das Paket mcrypt installiert sein:
sudo aptitude install mcrypt sudo php5enmod mcrypt
Apache-Restart
sudo service apache2 restart
Browser-Login durch http://localhost/roundcube
Die Alternative ist die Installation direkt aus den Quellen, z.B. unter Linux Mint.
Syncing IMAP
- OfflineIMAP bietet die Synchronisation mit lokalen "MailDir"-formattierten Mails und IMAP-Servern sowie von IMAP-Servern untereinander.
- mbsync/isync ermöglicht Synchronisation zweier IMAP-Server.
- Die IMAP-Tools bieten mit imapsync.pl ein Synchronisationstool.
- MailSync basiert auf der c-client-Bibliothek und kann nicht nur IMAP-Server synchronisieren.
- Reines Kopieren bietet imapcopy.
- imapsync eignet sich nach eigener Aussage nicht zur Synchronisation zweier aktiver IMAP-Server (wohl aber zum Backup). Siehe auch http://wiki.ubuntuusers.de/imapsync.
Löschen von Email-Duplikaten
Siehe
- Skript IMAPDedup
- Skript maildir-deduplicate.py
- Thunderbird Extension Remove Duplicates
- Eventuell hilft auch das simple Entfernen von Dateien mit demselben Inhalt mit Hilfe von fdupes
IMAP abfragen
GetMail (siehe unten) kann auch zum Abfragen eines IMAP-Servers genutzt werden. Es unterstützt auch IMAP IDLE für einen bestimmten IMAP-Ordner, z.B. INBOX
:
getmail --rcfile=imaprc --idle=INBOX
Das RC-File ~/.getmail/imaprc
für eine Auslieferung des GMX-Postfachs in ein MailDir-Verzeichnis könnte dann so lauten:
[retriever] type = SimpleIMAPSSLRetriever server = imap.gmx.net username = BENUTZER@gmx.de password = PASSWORT port = 993
[destination] type = Maildir path = ~/Maildir/
[options] verbose = 0 delete = false read_all = false
Siehe auch
- Anleitung zur Nutzung von GetMail und Dovecot zur Nutzung eines privaten Servers als Mail-Speicher
- direkte Kommunikation mit dem IMAP-Server
- https://github.com/Gentux/imap-cli
- IMAP mit Hilfe von curl
POP3 abfragen
Mittels fetchmail oder GetMail lassen sich POP3- oder IMAP-Server abfragen.
Getmail
Siehe auch oben Mail unter Linux#IMAP abfragen.
Anleitungen für GetMail:
Installation von GetMail
sudo aptitude install getmail4
Das RC-File für getmail --rcfile
(oder das Standardfile in ~/.getmail/getmailrc
kann für GMX folgendermaßen aussehen:
[retriever] type = SimplePOP3SSLRetriever server = pop.gmx.net username = USER@gmx.de password = PASSWORT port = 995
[destination] type = Maildir path = ZIELORDNER/(z.B. /var/mail/user/ oder /home/user/Maildir/, ggf. anzulegen mit Subdirectories cur, new und tmp; abschließenden Slash beachten)
[options] delete = false read_all = false
Starten mit
getmail --verbose
Sinnvoll ist das regelmäßige Starten mittels cron.
Automatisch Mail bearbeiten
notmuchmail
Um seine heruntergeladenen Mails auf dem lokalen Computer zu durchsuchen, bietet sich das Shell-Programm NotMuchMail an, das auch große Mengen von Mails durchsuchen kann.
Falls man mit notmuchmail Mails gefunden hat, kann man diese mit
notmuch show $SEARCH_EXPRESSION
anzeigen lassen.
GUI für einzelne Mails
Benötigt man einen graphischen Client für einzelne Mails, kann man KMail oder evolution installieren und die fraglichen Dateien, die mit
notmuch search --output=files $SEARCH_EXPRESSION
angezeigt werden in .mbox
umbenennen und dann mit
kmail $DATEINAME
oder
evolution $DATEINAME
öffnen
Simple Web-GUI für notmuch
sudo apt install notmuch python3-notmuch python3 -m pip install netviel --user source ~/netviel/bin/activate pip install notmuch python -m netviel
Die .forward Datei
Eine einfache .forward
-Datei ermöglicht das Weiterleiten an eine Email-Adresse. Es geht aber mit dem Pipe-Zeichen (|) auch das Weiterleiten an ein Skript.
Besser konfiguriert werden kann das aber mittels des Packages procmail
und der Datei .procmailrc
Attachments auspacken
mit mail-utils
Mit
mu extract mailfile
können die Anänge in einer Maildir-Datei angezeigt werden und mit demselben Tool auch extrahiert werden.
Das funktioniert gut zusammen mit notmuch in Form von notmuch search --output=files $SUCHAUSDRUCK
. Beispiel:
notmuch search --output=files $SUCHAUSDRUCK | xargs -n1 mu extract -a --play
mit munpack oder ripmime
Mit den Programmen munpack
(Package mpack
) oder | ripmime
lassen sich Email-Attachments aus einer Mail-Datei entpacken.
Eine /home/USER/.forward
Datei für munpack sieht beispielsweise so aus:
"| munpack -C /home/USER/attachments"
Eine /home/USER/.forward
Datei für ripmime sieht beispielsweise so aus:
"| ripmime -i - --infix -d /home/USER/attachments"
Siehe auch
- https://blog.lundscape.com/2009/10/extract-email-attachments-with-procmail-and-munpack/
- http://www.pldaniels.com/ripmime/
In .eml-Datei verpacken
Eine einzelne Email wird in Outlook als .eml-Datei gespeichert. Mit Hilfe von mutt kann man eine Maildir-Email auch in .eml umwandeln: Siehe https://unix.stackexchange.com/questions/60838/saving-email-as-file-in-mutt
Umstieg von Microsoft Outlook
Um von Microsoft Outlook auf ein Linux-Mail-Programm umzusteigen, müssen die ".pst"-Archivdateien von Outlook konvertiert werden:
- Überblick über Methoden zum Import nach Thunderbird
- Kommandozeilentool readpst konvertiert von Outlook-pst nach MBOX.
- Thunderbird Pst import plugin (basiert auf "readpst")
- Import von Outlook nach Thunderbird, wenn beides auf einem Rechner läuft.
- Outlook-Plugin zum Export in das MBOX-Format
- Kommerzielles Windows-Tool zur Konversion unterschiedlicher PST-Versionen, nochmals.
- http://outport.sourceforge.net/
Mailinglisten
Allgemeines
Sympa ist ein aus Frankreich stammender Mailing-List-Server. Er ist hochkonfigurierbar und bietet auch Schnittstellen für die Nutzung externer Authentifizierung. Er ist in den Ubuntu-Paketen enthalten.
Dada Mail ist ein Mailinglist-Programm. Lt. Wikipedia ist es unter GPL, allerdings ist die einfache Version lt. der Projekthomepage auf 3 Mailinglists und 1000 Abonennten begrenzt; ansonsten brauche man Pro Dada.
Phplist ist ein OpenSource-Mailinglist-Programm. Es ist eher für Newsletter als für Diskussionslisten gedacht.
Der FreeMailer GMX bietet Mailinglisten als so genannte "Verteiler" an, die in den Email-Optionen angelegt werden können. ein Nachteil ist die unschöne Form der Mail-Adressen:
verteilername%normale_Emailadresse@gmx.de
Besonders das Prozentzeichen sorgt m. E. für Verwirrung.
Siehe auch
- Ezmlm
- GroupServer - ein Open Source Mailing Server, sponsored von Neuseelands' OnlineGroups.net
Mailman
Mailman scheint ein Open Source-Programm zu sein, mit dem man Mailinglisten einrichten kann. Damit kann man wohl auch das Archiv im MBOX-Format exportieren. Siehe
- Postfix und Mailman unter Debian
- Ubuntu Community Anleitung für Mailman
- älteres Tutorial auf Basis von RedHat/Fedora
- deutschsprachige Dokumentation für Listenbetreuer
- Administrator-Story aus 2012 zu Mailman
- Linux Magazin Artikel aus 2005 zu Mailman
Wenn Mailman Probleme mit den Berechtigungen hat (siehe /var/log/mailman/error
), hilft wahrscheinlich mehrmaliges Ausführen von
/usr/lib/mailman/bin/check_perms -f
Gegebenenfalls muss man ein bisschen mit chgrp -h list
nachhelfen.
Außerdem ist im Zeitalter des Multimedia die Größe der maximalen Nachrichtengröße anzuheben, z.B.
https://SERVER/cgi-bin/mailman/admin/mailman/
und dann Allgemeine Optionen -> max_message_size auf z.B. 10000 Kb anpassen.
Email-Clients
- Einen indirekten Nachfolger für den Opera Email-Client M2, der bis Version 12 im Opera Browser enthalten war, wird für den Vivaldi-Browser entwickelt.
- Im aktuellen Snapshot von Vivaldi kann der Email-Client unter vivaldi://experiments/ aktiviert werden.
- Claws Mail (Gtk+-basiert, ursprünglich auf Basis von Sylpheed entwickelt, HTML-Mails nur über Plugins)
- Sylpheed (Gtk+-basiert, keine HTML-Mails)
- KMail - Qt/KDE-basiert
- Mozilla Thunderbird - seit 2012 Weiterentwicklung nur eingeschränkt, aber immer noch vorhanden
- Mutt - Mailprogramm für die Konsole mit text-graphischer Oberfläche
- Evolution - das Standard-Gnome-Mail-Programm
Einrichten für lokales Postfix/Dovecot
Wenn man
- Postfix als Satellitensystem (d.h. lokaler SMTP-Server, der aber über einen Provider wie GMX oder Arcor versendet) und
- Dovecot als lokalen IMAP-Server
- Getmail zum Abholen der eingehenden Nachrichten
eingerichtet hat, lassen sich entsprechende Konten in Thunderbird oder Evolution folgendermaßen einrichten:
- Angabe der Provider-Email-Adresse, an die Antworten gesendet werden sollen, (z.B. user@gmx.de)
- Umschalten auf manuelles Einrichten des Email-Kontos
- Angabe des localhost als IMAP- und SMTP-Server
- Für SMTP den Port 25 angeben
Senden von Emails aus der Shell
Mit mail
aus dem Paket mailutils
lässt sich Email aus der Kommandozeile versenden.
Für Attachments braucht man mpack
oder mutt
.[13]
Beispiel:
echo "Das ist der Nachrichtentext" | mutt -s "subject of message" -a "meinbild.jpg" -- empfaenger@beispiel.de
Große Anhänge
Email-Server lehnen meist größere Datei-Anhänge ab. Dafür sind so genannte Filelink-Dienste entstanden. U.a. Dropbox bietet eine solche Funktionalität, WeTransfer war der erste große Player auf dem Filelink-Gebiet.
Einen Filelink-Server kann man auch selbst betreiben. Dazu eignet sich Plik, für das auch ein Add-On für Thunderbird verfügbar ist.
Mail und Verschlüsselung
Mail und Signierung bzw. Verschlüsselung ist ein notwendiges Thema.
S/MIME
Viele Email-Clients unterstützen S/MIME-Verschlüsselung. Allerdings sollten Zertifikate genutzt werden, die von einer Certificate Authority stammen, die auf den meisten Plattformen standardmäßig unterstützt/vertraut werden.
Kostenlose Zertifikate gibt es z.B. von
- Actalis, siehe
- https://www.frankysweb.de/tipp-kostenloses-s-mime-zertifikat-neu/
- Achtung: Das kostenlose Zertifikat wird auf dem Actalis-Server erzeugt - man vertraut daher den privaten Schlüssel Actalis an!
- WiseKey
- Achtung: Das kostenlose Zertifikat wird auf dem WiseKey-Server erzeugt - man vertraut daher den privaten Schlüssel Actalis an!
- Sectigo
- Kostenlos nur 30 Tage gültig
Die unter Windows standardmäßig installierten Stammzertifikate findet man auf der Microsoft-Seite.
PGP
- GMX-Email-Verschlüsselung
- K9-Mail mit OpenPGP-Erweiterung
Fehlersuche
Bei der Fehlersuche hilft auch ein automatisches Mail-Echo: Das bekommt man z.B., wenn man eine Mail an echo@tu-berlin.de versendet.
- ↑ https://wiki.debian.org/sSMTP
- ↑ https://wiki.archlinux.org/title/SSMTP
- ↑ Siehe https://debianforum.de/forum/viewtopic.php?f=30&t=148726
- ↑ http://schneiders.spdns.de/2014/02/25/installation-smtp/
- ↑ Vgl. https://nas-selber-bauen.de/ssmtp-fuer-das-banana-pi-nas/
- ↑ Siehe näher https://wiki.ubuntuusers.de/Postfix/
- ↑ Vgl. auch https://forum.ubuntuusers.de/topic/postfix-empfaenger-root-in-echte-mailadresse-/
- ↑ Siehe http://my.opera.com/operawiki/forums/topic.dml?id=1133042.
- ↑ http://wiki2.dovecot.org/FindMailLocation
- ↑ Siehe http://wiki.ubuntuusers.de/Squirrelmail
- ↑ Siehe https://help.ubuntu.com/community/Roundcube
- ↑ https://help.ubuntu.com/community/Roundcube
- ↑ Vgl. http://stackoverflow.com/questions/17359/how-do-i-send-a-file-as-an-email-attachment-using-linux-command-line