Mails an Port 25 mit Telnet verschicken kann ein geübter Mail-Admin häufig ohne nachzusehen
Ein wenig komplexer wird es, wenn man SSL/TLS verwenden muss und seine Mail mit Password-Login am Submission-Port 587 loswerden will.
Je nach Server können verschiedene Login-Verfahren nötig sein, mein Beispiel-Server möchte AUTH PLAIN, andere Verfahren wären z.B. LOGIN oder CRAM-MD5 (siehe SMTP-Auth).
AUTH PLAIN: Username + Password (base64 kodiert) übermitteln
$ echo -ne "\0username\0password" | base64
AHVzZXJuYW1lAHBhc3N3b3Jk
Ohne SSL könnte man die Username+Password-Kombination natürlich mitschneiden und verwenden, mit SSL ist das kein Sicherheitsproblem
Sich mit dem Submission Port (587) verbinden, mit "-starttls
" sagen das man TLS verschlüsseln will:
$ openssl s_client smtp -starttls -connect mailserver007.example.com:587
Der Server meldet dann
CONNECTED(00000003)
und viele viele Zeilen Infos, u.u. zu seinem SSL-Zertifikat
Start Time: 1624960832 Timeout : 7200 (sec) Verify return code: 0 (ok) Extended master secret: yes --- 250 CHUNKING
jetzt dem Server sagen, dass man nicht nur SMTP sondern sogar ESMTP kann:
ehlo hier-koennte-mein-dns-name-stehen-aber-was-anderes-geht-auch
Der Server meldet zurück, welche Features er unterstützt:
250-mailserver007.example.com 250-PIPELINING 250-SIZE 209715200 250-VRFY 250-ETRN 250-AUTH PLAIN 250-AUTH=PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250-SMTPUTF8 250 CHUNKING
"250" heisst hier: Alles wunderbar, weitermachen
Dieser Server will zum Authentifizieren das Format "AUTH PLAIN".
Wir melden uns mit dem oben generierten base64-String an:
auth plain AHVzZXJuYW1lAHBhc3N3b3Jk
Wenn das erfolgreich war, kommt "Authentication successful" zurück:
235 2.7.0 Authentication successful
Damit können wir jetzt unsere Mail loswerden.
Erst mal den "Briefumschlag" adressieren (Envelope):
mail from: username@example.com 250 2.1.0 Ok rcpt to: anna.beispiel@unixwitch.de 250 2.1.5 Ok
Mit "data" startet man die Übermittlung des Mailtexts (mit Briefkopf und Betreff)
data 354 End data with <CR><LF>.<CR><LF>
Den Briefkopf kann man weglassen oder auch andere Angaben als auf dem Briefumschlag machen. Eventuell wird die Mail dann aber vom Empfänger-Server als Spam eingeordnet.
from: eva.example@example.com to: anna.beispiel@unixwitch.de subject: command line mail example Mail-Text mehrere Zeilen Am Ende kommt ein einzelner Punkt, damit wird die Mail dann abgesendet: . 250 2.0.0 Ok: queued as 42FFF2021A
Die Mail wurde in eine Mailserver-Queue einsortiert damit sie weiter verarbeitet (und hoffentlich abgesendet bzw. in die richtige Mailbox gesteckt wird).
Wenn man nachher im Logfile nachsehen will, was danach mit dieser Mail passiert ist, merkt man sich die Mail-ID (hier 42FFF2021A
)
Zum Schluss noch ausloggen:
quit
221 2.0.0 Bye
closed
hier ein Auszug aus dem Maillog (hier Postfix):
$ sudo grep 42FFF2021A /var/log/mail.log Jun 29 17:07:56 mail-007 postfix/submission/smtpd[171593]: 42FFF2021A: client=ppp-198-51-100-23.dynamic.example.com[198.51.100.23], sasl_method=plain, sasl_username=username Jun 29 17:09:34 mail-007 postfix/cleanup[174103]: 42FFF2021A: message-id=<> Jun 29 17:09:34 mail-007 postfix/qmgr[171589]: 42FFF2021A: from=<username@example.com>, size=1043, nrcpt=1 (queue active) Jun 29 17:09:34 mail-007 postfix/smtp[174170]: 42FFF2021A: to=<anna.beispiel@unixwitch.de>, relay=mail.unixwitch.de[203.0.113.42]:25, delay=111, delays=110/0.02/0.11/0.17, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 23AAA2021C) Jun 29 17:09:34 mail-007 postfix/qmgr[171589]: 42FFF2021A: remove
siehe auch:
gilt für alle Tipps, Tricks & Spickzettel:
dies sind einfache, teils banale Notizen für meinen persönlichen Gebrauch,
die hier eher zufällig auch öffentlich lesbar sind
(vielleicht hilft es ja jemandem weiter). Verwendung auf eigene Gefahr
Fehler-Hinweise, Dankesschreiben , etc. bitte an: web.21@unixwitch.de
weitere Tools / Spickzettel