Mensajes Masivos y Return-Path

Tenemos la fortuna de contar con clientes que se toman muy en serio el apego a las mejores prácticas en el envío masivo de correos. Para ellos -- y para quienes nos consultan sobre este tema -- preparamos esta nota sobre un requisito fundamental para poder procesar correctamente los mensajes de rebote.

Toda lista de correo bien mantenida va a generar mensajes de rebote ocasionalmente. Hay muchas razones legítimas para esto: Usuarios que abandonan sus cuentas de correo, buzones que se llenan, problemas en el transporte de los mensajes ... Es inevitable.

Una diferencia fundamental entre quienes operan responsablemente sus listas de correo y quienes no, radica en la atención que se le presta a esos rebotes. No hacer nada, el camino fácil e irresponsable, conduce a una lista de correo que con el tiempo produce enormes cantidades de rebotes.

Es interesante que aunque la organización puede tener la mejor intención para atender esos rebotes, puede estar cometiendo un error muy común que se lo hace imposible...

¿Quién envió el mensaje?

No vamos a discutir aquí todos los detalles de la estructura y significado de todos los elementos que conforman un mensaje de correo electrónico. Para eso existen documentos como el RFC-2822 que hacen un mejor trabajo.

Sí vamos a recordar que existen en la práctica dos designaciones para el remitente de un mensaje de correo electrónico. El primero es el que muestra el cliente de correo y que se extrae del encabezado From: del mensaje. Este es el más corriente y el que debe ser reconocido por el destinatario para garantizar los mejores resultados posibles en el envío.

El segundo y mucho menos conocido es el que se conoce como "Envelope Sender". Usualmente ambos coinciden en el mismo valor y la diferencia no es importante. Pero en el correo masivo la diferencia es fundamental.

El "Envelope Sender" va a recibir mensajes generados automáticamente por el sistema de correo -- tales como muchos tipos de rebote. Esta es una idea fundamental de un esquema como VERP con el que se puede saber automáticamente qué destinatario está asociado con qué mensaje de rebote.

Configurando el Envelope Sender

Quienes envían mensajes en forma masiva emplean esencialmente un programa que de una forma u otra construye mensajes basados en una plantilla y los envía a una lista de destinatarios usando una librería o interfaz con el protocolo SMTP.

Las librerías para interactuar con SMTP ofrecen mecanismos para configurar el envío de mensajes -- parámetros como el título del mensaje, su contenido, remitente, destinatarios, etc. Basta entonces con ajustar el parámetro que controla el valor del comando SMTP MAIL FROM que se presenta en el diálogo típico:

220 mail-00.cliente ESMTP powered by Itverx
HELO lem.itverx.com.ve
250 mail-00.cliente Hello machine.tld [127.0.0.1], pleased to meet you
MAIL FROM: envelope-sender+lem=itverx.com.ve@mail.cliente
250 2.1.0 envelope-sender+lem=itverx.com.ve@mail.cliente... Sender ok
RCPT TO: lem@itverx.com.ve
...

En general, podemos usar cualquier dirección dado que lo que está a la derecha de la @ sea un dominio -- o un servidor -- controlado por su organización y preparado para manejar correcta y eficientemente el tráfico de rebotes que generan sus envíos.

Usando Return-Path a nuestro favor

Itverx típicamente implementa VERP usando direcciones que tienen una estructura como esta:

{raíz}+{id-1}+{id-2}+...+{destinatario}@envios.cliente

Donde cada componente se define como:

  • {raíz}: El buzón al que deben enviarse los rebotes que se van a procesar automáticamente. Usando diferentes buzones con esta misma fórmula, pueden construirse mecanismos para procesar respuestas, rebotes, confirmaciones de lectura ...

  • {id-1} a {id-n}: Identificadores que permiten reconocer qué lista y qué mensaje en particular generó un rebote. Pueden usarse tantos niveles como se requiera, aunque dos niveles es lo usual.

  • {destinatario}: La dirección del destinatario convertida a minúsculas, con la @ convertida a un =. También es usual emplear un identificador que permite ubicar el registro que corresponde al destinatario en la base de datos del remitente.

  • @envios.cliente: Un dominio o servidor en el que nuestro cliente puede recibir los mensajes.

No existe un único formato estándar y pueden haber muchas formas de construir las direcciones para recibir los rebotes. Lo fundamental es generar una dirección particular para cada mensaje que se envía.

Ya lo arreglé... ¿Ahora qué hago?

En listas que han estado operando desde hace tiempo sin aprovechar esta técnica es de esperar que los rebotes se hayan acumulado. Activando esta técnica, se recibirá un gran número de rebotes en los primeros envíos.

Algunos operadores de listas se preocupan porque perciben esto como una merma. La merma no es tal. Después de todo, esos mensajes han estado rebotando desde hace mucho tiempo. En todo caso, esta nueva herramienta permite reducir sus costos, al evitar procesar mensajes que de todos modos no pueden llegar a su destino.