Mail unter Linux

Aus CodicaTipps
Wechseln zu: Navigation, Suche

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:

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

MailPile

SquirrelMail

SquirrelMail ist ein Webfrontend für IMAP mit etwas altmodischer Oberfläche, dafür aber ausgereift.

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


Löschen von Email-Duplikaten

Siehe


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

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.

Benötigt man einen graphischen Client für einzelne Mails, kann man KMail installieren und die fraglichen Dateien, die mit

 notmuch search --output=files $SEARCH_EXPRESSION

angezeigt werden in .mbox umbenennen und dann mit

 kmail $DATEINAME

öffnen

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

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:

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

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

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

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.


  1. https://wiki.debian.org/sSMTP
  2. https://wiki.archlinux.org/title/SSMTP
  3. Siehe https://debianforum.de/forum/viewtopic.php?f=30&t=148726
  4. http://schneiders.spdns.de/2014/02/25/installation-smtp/
  5. Vgl. https://nas-selber-bauen.de/ssmtp-fuer-das-banana-pi-nas/
  6. Siehe näher https://wiki.ubuntuusers.de/Postfix/
  7. Vgl. auch https://forum.ubuntuusers.de/topic/postfix-empfaenger-root-in-echte-mailadresse-/
  8. Siehe http://my.opera.com/operawiki/forums/topic.dml?id=1133042.
  9. http://wiki2.dovecot.org/FindMailLocation
  10. Siehe http://wiki.ubuntuusers.de/Squirrelmail
  11. Siehe https://help.ubuntu.com/community/Roundcube
  12. https://help.ubuntu.com/community/Roundcube
  13. Vgl. http://stackoverflow.com/questions/17359/how-do-i-send-a-file-as-an-email-attachment-using-linux-command-line