D. J. Bernstein
Internet mail
SMTP: Simple Mail Transfer Protocol

The TURN and ETRN verbs

TURN and ETRN are aimed at the following situation. Mail for a part-time host, such as a home computer that dials in occasionally through a modem, is waiting in the queue on a full-time host. The part-time host connects. How does it retrieve its mail?

One answer is for the full-time host to make an SMTP connection to the part-time host. The part-time host merely needs to wake up the full-time host, for example by connecting to it through Finger or Hello or SMTP or FTP.

TURN and ETRN follow this general approach but add extra complexity to the ``connecting'' part.

The TURN verb

The idea of TURN is that the part-time host makes an SMTP connection to the full-time host and then sends TURN. If the server accepts TURN (required code 250), the client and server exchange roles; the part-time host now becomes the server, and the full-time host now becomes the client. The part-time host sends a greeting; the full-time host starts sending mail.

Today's servers reject TURN for security reasons. If the part-time host is a multiuser system, any user can easily connect to the full-time host and type TURN. Far fewer people know how to steal mail when the full-time host makes the connection.

There is a TURN extension that promises support for the TURN verb.

The ETRN verb

ETRN was introduced in RFC 1985, published in 1996.

The parameter to an ETRN request is normally a domain name.

If the server accepts the request, it will schedule deliveries to that domain for the next convenient moment. Note that this does not guarantee any particular time. The server can use code 250, 251, 252, or 253. 251 guarantees that there are no deliveries waiting for the domain. 252 and 253 guarantee that there are deliveries waiting.

The parameter may instead be a domain name preceded by an @; this refers to the domain and all its subdomains. Or the parameter may start with an #; in this case the interpretation is server-defined.

There is an ETRN extension, with no arguments allowed, that promises support for the ETRN verb. I don't know whether ETRN-using clients pay attention to this extension.