Applications/networking/mail/mail-smtp-troubleshooting.md
2024-04-03 22:04:13 +02:00

1.9 KiB

SMTP Troubleshooting Cheat Sheet

SMTP (Simple Mail Transfer Protocol) is a networking protocol for mail transfer. It's used to send emails from a mail client to a mail server and between mail servers.

Test SMTP Server connectivity

telnet smtp.example.com 25

Test SMTP Server connectivity with STARTTLS

openssl s_client -starttls smtp -ign_eof -crlf -connect smtp.example.com:587

HELO

The HELO (or EHLO) command is a command used by the SMTP client when it initiates a connection with an SMTP server, to announce itself and establish communication.

EHLO example.com

In response to the HELO command, the SMTP server typically sends a reply code indicating the success or failure of the command. The server may also include additional information or instructions. Here's an example of an EHLO response:

250-FR3P281CA0133.outlook.office365.com Hello [***.***.***.***]
250-SIZE 157286400
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250 SMTPUTF8

For more information about EHLO response codes see EHLO Response Codes, and for SMTP response codes see SMTP Response Codes.

Authentication

SMTP servers typically require authentication before allowing a user to send mail. Some authentication methods, such as LOGIN and PLAIN, are supported by default, while others may need to be enabled by the server administrator.

AUTH LOGIN
your-base64encoded-username
your-base64encoded-password

To encode a string in base64, you can use the base64 command:

echo -n "username" | base64

Send Email

To test sending an email using the MAIL FROM, RCPT TO, and DATA commands:

MAIL FROM: <sender@example.com>
RCPT TO: <recipient@example.com>
DATA
Subject: This is the subject line

This is the message body.
You can write multiple lines.
.