- On-Demand Mail Relay
-
On-Demand Mail Relay (ODMR) is an SMTP extension standardized in RFC 2645 that allows e-mail to be relayed to the recipient after he has been authenticated. It uses the extended SMTP command
ATRN
, similar to the ETRN command but available for dynamically assigned IP addresses.ODMR works in the following way: to check his inbound mail, the customer issues EHLO and AUTH commands to the ODMR service, followed by ATRN command (Authenticated TuRN); after a successful ATRN command the ODMR server begins to act as an SMTP client and starts to send all messages directed to a customer's domain (or domains) using SMTP protocol, via the same TCP connection. Since the connection is initiated by the customer, this protocol works well for machines having dynamically assigned IPs and/or are firewall protected (i.e. your ISP may block incoming connection on port 25 or may use NAT, as done by FASTWEB in Italy). Only the ODMR server, referred as the provider, must listen to SMTP connections on a fixed IP address.
Contents
External ODMR Support
The design of ODMR allows the protocol to be used with an SMTP server that doesn't support it natively. A separate application can be used to do the initial ODMR protocol negotiation (EHLO, AUTH and ATRN), then hand over the connection to the SMTP server once the protocol has reached the "reversed" state.
ODMR transport example
A typical example of getting emails with odmr.
For illustration purposes here (not part of protocol), the protocol exchanges are prefixed for the server (>) and the client (<).
> 220 EXAMPLE.NET on-demand mail relay server ready < EHLO example.org > 250-EXAMPLE.NET > 250-AUTH CRAM-MD5 EXTERNAL > 250 ATRN < AUTH CRAM-MD5 > 334 <keysequenz> > 235 now authenticated as example.org < ATRN example.org,example.com > 250 OK now reversing the connection < 220 example.org ready to receive email > EHLO EXAMPLE.NET < 250-example.org < 250 SIZE > MAIL FROM: <Lester.Tester@dot.foo.bar> < 250 OK > RCPT TO: <l.eva.msg@example.com> < 250 OK, recipient accepted ... > QUIT < 221 example.org closing connection
ODMR clients
- fetchmail (GPL) works with many protocols, including ODMR; win32 ports require Cygwin: looks like that doesn't support TLS data exchange (using STARTTLS)
- xatrn (closed source), win32 only; doesn't support TLS data exchange (using STARTTLS)
- xODMR (GPL), portable (pure Python), works fine with TLS.
ODMR servers
Categories:- Internet mail protocols
Wikimedia Foundation. 2010.