Extended SMTP
Extended SMTP (ESMTP), sometimes referred to as Enhanced SMTP,is a definition of protocol extensions to the Simple Mail Transfer Protocol standard.
The extension format was defined in IETF publication RFC 1869 (1995) which established a general structure for all existing and future extensions.
ESMTP defines consistent and manageable means by which ESMTP clients and servers can be identified and servers can indicate supported extensions.
Extensions
The main identification feature is for ESMTP clients to open a transmission with the command EHLO (Extended HELLO), rather than HELO.
Some relatively common keywords (not all of them corresponding to commands) used today are:
- 8BITMIME — 8 bit data transmission, RFC 1652
- ATRN — Authenticated TURN for On-Demand Mail Relay, RFC 2645
- SMTP-AUTH — Authenticated SMTP, RFC 4954
- CHUNKING — Chunking, RFC 3030
- DSN — Delivery status notification, RFC 3461 (See Variable envelope return path)
- ETRN — Extended version of remote message queue starting command TURN, RFC 1985
- HELP — Supply helpful information, RFC 821
- PIPELINING — Command pipelining, RFC 2920
- SIZE — Message size declaration, RFC 1870
- STARTTLS — Transport layer security, RFC 3207 (2002)
- UTF8SMTP — Allow UTF-8 encoding in mailbox names and header fields, RFC 5336
The ESMTP format was restated in RFC 2821 (superseding RFC 821) and updated to the latest definition in RFC 5321 in 2008. Support for the EHLO
command in servers became mandatory, and HELO designated a required fallback. Non-standard, unregistered, service extensions can be used by
bilateral agreement, these services are indicated by an EHLO message keyword starting with “X”, and with any additional parameters or verbs
similarly marked. SMTP commands are case-insensitive. They are presented here in capitalized form for emphasis only. An SMTP server that
requires a specific capitalization method is a violation of the standard.
8BitMIME:
The sender uses this command to announce that is supports higher bit ASCII transmission.
AUTH:
Use ‘Auth’ to set up authenticated SMTP transactions. ie. PLAIN, LOGIN, MD5, CRAM-MD5
DSN:
This option asks the Gordano mail server to confirm that a transaction was completed as desired. You could you use DSN to act
as a receipt mail message to confirm when the intended receiver has received your message.
ETRN:
This command is also known as QSND. It is specifically designed to allow intergration with dial-up mail servers.
A dial-up mail server can connect to ESMTP server and issue the ETRN command to basically force all the e-mail for its server to be posted out.
Note: The standard ETRN specified in RFC 821 is not secure! Anyone issuing ETRN for a domain can retrieve mail for that domain.
PIPELINING:
A sending server can use pipelining to send all messages to the receiving, at once using one connection without having to use the RSET command each time.
RESTART:
Also known as Checkpoint. If a connection is dropped half way through a mail message, on its reconnection the Restart command from the sender gives receiver the option of continuing.
SIZE:
This can set restriction on the total size of messages accepted for a particular domain. The sending server will state it has a message
size constraint to the receiving sender. This will then either be accepted or not.
ie. postfix mail server ESMTP
# telnet mx.domain.tld 25 Trying 1.2.3.4... Connected to mx.domain.tld (1.2.3.4). Escape character is '^]'. 220 mx.domain.tld ESMTP Postfix (2.6.1) EHLO client.domain.tld 250-mx.domain.tld 250-PIPELINING 250-SIZE 31981568 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit 221 2.0.0 Bye Connection closed by foreign host.
It’s support ESMTP features such as PIPELINING 8BITMIME SMTP-AUTH and so on.