Mails senden und empfangen auf dem CLI


Mails senden

Linux bzw Unix Administratoren haben nicht nur das Bedürfnis Mails über die Command Line zu verschicken. Dieses Feature ist notwendig um z.B. von einen Script aus Mails zu verschicken oder Logfiles an einen User zu schicken, der keine Zugang zur Maschine hat, oder nur schnell ein Mail zu verfassen und dazu nicht gleich ein Mailprogramm zu starten. Beim ersten Beispiel wird ein Mail an den root der localen Maschine geschrieben. Erste Zeile ausführen, Text schreiben. Wenn das erste Symbol in der Zeile ein Punkt ist, wird das Mail versendet. Dadurch weiß der Sendmail, dass der Text zu Ende ist und das Mail wird verschickt. Danach wird noch gefragt, ob du dieses Mail, jemanden cc (Carbon Copy)schicken möchtest.
$ mail -s "Mail Subject" root
Test schreiben.
.
Cc:
$
Mails aus einen Script oder ein Logfile verschicken.
Mit den Parametern -c wird das Mail cc an jemand anderen weitergeleitet. Die Option -b bedeutet nichts anderes als bcc (Blind Carbon Copy). Wenn das Mail an mehre User gehen soll, wird die Adresse mit Beistrich getrennt.
$ more /var/log/secure | mail -s "Mail Subject" root
$ more /var/log/secure | mail -s "Mail Subject" root -c thomas,karl -b test@hotmail.com
Das erste Mail sollte versendet sein, wenn das Mail nicht ankommt, solltest du deine Logfiles durchsehen, bzw deine MTA (Mail Tranfer Agent) Einstellungen überprüfen. Als Standard bei den meisten Linux/Unix Distributionen ist Sendmail der bevorzugte MTA. Die Konfiguration vom Sendmail wird an einer anderen Stelle vorgenommen.

Mails über Telnet verschicken

Es gibt auch die Möglichkeit Mails direkt über einen Mailserver zu verschicken. Das werden eben die Windows User brauchen oder ein Unix Adminstrator, der seinen Mailserver testet will. Man benutzt dazu Telnet und verbindet sich mit den Mailserver auf Port 25 (SMTP).
$ telnet mail.gmx.net smtp
helo gmx.de
mail from: deine-adresse@gmx.de
rcpt to: der-empfänger@gmx.de
data

.
quit
$

Mails über POP3 abrufen

Mail über telnet abzurufen ist heutzutage eher umständlich, aber manchmal auch durchaus nützlich. Man stellt eine Verbindung mit Telnet zu den Server auf Port 110 her. Wenn der Server mit "+OK ready" antwortet kannst du Versuchen dich einzuloggen und deine Mails lesen.
Die wichtigsten Optionen:
  • user usernae
  • pass password
  • stat zeigt wieviele Mails im Account sind
  • list listet alle Mails auf
  • retr 1 macht Mail 1 auf
  • dele 1 löscht Mail 1
  • quit Das Mail wird jetzt endgültig gelöscht und die Session wird geschlossen
  • rset Stellt Mails, die in dieser Session mit dele gelöscht wurden wieder her. Es darf kein quit dazwischen liegen.
  • telnet mail.test.org 110
    Trying 81.209.148.133...
    Connected to mail.test.org.
    Escape character is '^]'.
    +OK ready  <7738.1096614425@dd2026.tester.com>
    USER {username}                                        
    +OK Password required for v07988215.
    PASS {password}
    +OK v07988215 has 27 visible messages (0 hidden) in 1864099 octets.
    STAT
    +OK 27 1864099
    LIST
    +OK 27 visible messages (1864099 octets)
    1 5823
    2 1878
    3 42715
    4 41788
    .....
    RETR 1
    +OK 5823 octets
    .....
    DELE 1
    +OK Message 1 has been deleted.
    STAT
    +OK 26 1858276
    quit