On-Demand Mail Relay ( ODMR ) es una extensión SMTP estandarizada en RFC 2645 que permite que el correo electrónico se transmita a los destinatarios después de que hayan sido autenticados. Utiliza el comando SMTP extendido ATRN
, similar al ETRN
comando pero disponible para direcciones IP asignadas dinámicamente.
ODMR funciona de la siguiente manera: para verificar su correo entrante, los clientes emiten EHLO
y los AUTH
comandos al servicio ODMR, seguido del ATRN
comando (TuRN autenticado); después de un ATRN
comando exitoso, el servidor ODMR comienza a actuar como un cliente SMTP y comienza a enviar todos los mensajes dirigidos al dominio (o dominios) del cliente usando el protocolo SMTP, a través de la misma conexión TCP. Dado que las conexiones las inician los clientes, este protocolo funciona bien para máquinas que tienen IP asignadas dinámicamente y / o están protegidas por firewall (es decir, su ISP puede bloquear la conexión entrante en el puerto 25 o puede usar NAT ). Solo el servidor ODMR, denominado proveedor , debe escuchar las conexiones SMTP en una dirección IP fija.
Soporte ODMR externo
El diseño de ODMR permite que el protocolo se utilice con un servidor SMTP que no lo admite de forma nativa. Se puede usar una aplicación separada para realizar la negociación inicial del protocolo ODMR ( EHLO
, AUTH
y ATRN
), luego transferir la conexión al servidor SMTP una vez que el protocolo ha alcanzado el estado "invertido".
Ejemplo de transporte ODMR
Un ejemplo típico de recibir correos electrónicos con ODMR.
Aquí, con fines ilustrativos (que no forman parte del protocolo), los intercambios de protocolo tienen el prefijo del servidor (>) y el cliente (<).
> 220 EJEMPLO.NET servidor de retransmisión de correo bajo demanda listo > 250-EJEMPLO.NET > 250-AUTH CRAM-MD5 EXTERNO > 250 ATRN > 334 >> 235 ahora autenticado como example.org > 250 OK ahora invirtiendo la conexión<220 example.org listo para recibir correo electrónico> EHLO EJEMPLO.NET<250-example.org<250 TAMAÑO> CORREO DESDE: @dot.foo.bar><250 OK> RCPT PARA: @example.com><250 OK, destinatario aceptado...> SALIR<221 example.org cerrando conexión