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 25 angeboten werden.
      • Via STARTTLS muss aktiv verschlüsselt werden.
      • 465 war fürher SSL, heute “neu” wieder smtps (Implizit STARTTLS). Sollte aber nicht verwendet werden.
    • TLS-Version gibt es 1.2 und 1.3, 1.3 sollte verwendet werden.

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