Bash Mail
Will man was per Mail testen, kann so einfach eine Mail verschickt werden.
Kurz zu SSL/TLS
- SSL wird nicht mehr verwendet.
- TLS
- Standard Port:
587- Kann aber auch auf
25angeboten werden. - Via
STARTTLSmuss aktiv verschlüsselt werden. 465war fürher SSL, heute “neu” wiedersmtps(ImplizitSTARTTLS). Sollte aber nicht verwendet werden.
- Kann aber auch auf
- TLS-Version gibt es
1.2und1.3,1.3sollte verwendet werden.
- Standard Port:
Folgende Beispiele ohne Authentifizierung
Ohne TLS
# einfach, allerdings bleibt es interaktiv, aber mail wird versendet
# wenn das stört, funktioniert es mit printf -> siehe unten
printf "EHLO localhost\nMAIL FROM:<from@local.me>\nRCPT TO:<to@local.me>\nDATA\nSubject: Test\n\nHallo aus Bash!\n.\nQUIT\n" | nc mail.local.me 25
Mit TLS (1.2/1.3)
# tls 1.2
(echo "EHLO localhost"; sleep 1; echo "MAIL FROM:<from@local.me>"; echo "RCPT TO:<to@local.me>"; echo "DATA"; echo "Subject: Testmail"; echo; echo "Hallo!"; echo "."; echo "QUIT") \
| openssl s_client -connect mail.local.me:25 -starttls smtp
# oder, ebenfalls mit tls 1.2
# -crlf → wandelt \n (LF) → \r\n (CRLF) um
(
echo "EHLO localhost"
echo "STARTTLS"
sleep 1
echo "EHLO localhost"
echo "MAIL FROM:<from@local.me>"
echo "RCPT TO:<to@local.me>"
echo "DATA"
echo "Subject: Testmail mit TLS"
echo "From: from@local.me"
echo "To: to@local.me"
echo
echo "Hallo,"
echo "diese Mail wurde verschlüsselt per STARTTLS gesendet."
echo "."
echo "QUIT"
) | openssl s_client -connect mail.local.me:25 -starttls smtp -crlf
# tls 1.3 enforcen
printf "EHLO localhost\nSTARTTLS\nEHLO localhost\nMAIL FROM:<from@local.me>\nRCPT TO:<to@local.me>\nDATA\nSubject: Test\n\nHallo aus Bash! (TLS 1.3)\n.\nQUIT\n" | \
openssl s_client -connect mail.local.me:25 -starttls smtp -tls1_3