Configurar Postfix con reenvío de correo (relay mail)

Configurar Postfix para reenviar correo electrónico tiene algunas ventajas y no es muy complicado de hacer.

Durante el fin de semana me dispuse a configurar un servidor para que funcionara como se retransmisor de correo (relay mail), no es complicado, pero se tienen que tener algunas precauciones.

Pero antes de entrar en materia, voy a intentar ilustrar la forma de envío tradicional y con relay para resaltar sus diferencias.

Envío tradicional de correo electrónico

Envio tradicional de correo

Este es el envío tradicional, cada cliente tiene configurado el servidor de correo de nuestro proveedor y por lo tanto cada usuario tiene su propio nombre de usuario y contraseña para poder enviar correo electrónico.

Usualmente uso Thunderbird como cliente de correo electrónico y por cada correo que se manda muestra un cuadro de diálogo informando sobre el estatus de la conexión y el avance de subida de los adjuntos.

Si el tamaño de los adjuntos es considerable, entonces se puede tardar unos segundos (o minutos) extras hasta que da el mensaje de enviado con éxito. Si en esos momentos la conexión a Internet es inestable entonces dará uno o varios errores hasta que se complete el envío.

Envío con Relay

En este caso un servidor interno funciona como intermediario, piense usted en él como el mensajero de la oficina, usted le entrega su correo y él se encarga de hacer los trámites necesarios para que lleguen a su destino.

Envio con relay

Todos los correos llegan a este servidor y el se encarga de formarlos en una fila y entregarlos al servidor de correo de nuestro proveedor.

La ventaja es que solo tengo que configurar una cuenta de correo electrónico con su nombre de usuario y contraseña para que la use el servidor que funciona como Relay, la configuración de los clientes de correo no necesitan estas credenciales.

Además la entrega de los clientes es prácticamente inmediata, a la velocidad de la red local, lo que les da la sensación de un envío inmediato.

Ustedes me podrán decir ¿Y porqué no configurar Postfix para que entregue el correo directamente? y tienen razón, es posible hacerlo y tampoco es complicado, el problema son las validaciones y comprobaciones que se tienen que hacer para que no se clasifique un correo como spam.

En la actualidad los correos que salen de un servidor de correo incluyen varios mecanismos para confirmar que son de una fuente confiable y eso si es mucho más complicado de hacer (pero no imposible).

Configurando Postfix con reenvío de correo.

En mi caso usé el equipo que tengo configurado con OpenMediaVault , o sea un Debian, pero no hay mucha diferencia con otras distribuciones de Linux como Ubuntu o Manjaro.

Antes de comenzar recuerden que tienen que crear una cuenta de correo con el proveedor que les esta proporcionando el servicio, su nombre de usuario y contraseña es la que va a utilizar el servidor con relay. Voy a usar relay@midominio.com como ejemplo.

Para hacer los ajustes necesarios se tiene que modificar el archivo /etc/postfix/main.cf , este ejemplo les puede servir de guía.

Archivo /etc/postfix/main.cf

mydestination =

myhostname = midominio.com
mydomain = midominio.com

#Opciones de seguridad
relayhost = [mail.midominio.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_pass
smtp_sasl_security_options =

#Redes validas
#En este caso, localhost y toda la red local.
mynetworks = 127.0.0.0/8, 192.168.10.0/24
inet_interfaces = all

#Tamaño máximo del mensaje 20MB aprox.
message_size_limit = 27262976

Noten que en la línea que dice relayhost el dominio esta entre corchetes y además se especifica el puerto utilizado (en este caso 587).

También noten que se hace referencia a un archivo llamado smtp_pass en la línea que dice smtp_sasl_password_maps en ese archivo se almacena el nombre de usuario y contraseña que vamos a usar para mandar los correos y es muy similar a este ejemplo:

Archivo /etc/postfix/smtp_pass

[mail.midominio.com]:587 relay@midominio.com:contraseña

Nuevamente revisen que el servidor de correo este entre corchetes y el número de puerto. Debe de ser idéntico a como se especificó en relayhost. Como pueden ver lo que sigue es la cuenta de usuario y la contraseña.

Para que Postfix pueda usar esta información hay que preparar un archivo especial con esta instrucción…

postmap /etc/postfix/smtp_pass

Para aplicar los cambios tienen que reiniciar el servicio, en Debian es así:

sudo /etc/init.d/postfix restart

y verán estos mensajes.

Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.

Para realizar las pruebas solo resta configurar un cliente de correo electrónico, en Thunderbird en el menú PreferenciasConfiguración de cuentas…

Y se agrega la información de nuestro nuevo servidor.

Servidor SMTP en Thunderbird

Por default Postfix utiliza el puerto 25 y no requiere identificación alguna.

Si todo salió bien, dentro de pocos instantes verán que llegó correctamente su correo electrónico a su bandeja de entrada.

Referencias

6 comentarios en “Configurar Postfix con reenvío de correo (relay mail)”

  1. Hola Frank,

    Muy bien explicado y muy interesante. Lo he implementado y funciona a la primera pero me pasa algo curioso, los emails llegan perfecto pero si adjunto algo, no llega el adjunto (pero el email sí). Por lo que explicas del proceso, mi Postfix lo único que hace es enviarle las instrucciones al servidor “remoto”, así que no debería configurar nada al respecto de cabeceras mime ni nada por el estilo, no? (es que me huelo un problema así).

    Muchas gracias 🙂

    Responder
  2. Pues si que es curioso, porque cuando hice mis pruebas, se me regresaron muchos correos, pero jamás tuve problemas con os adjuntos.

    Y si tienes razón, el servidor posftfix configurado como relay sólo pasa la estafeta al otro servidor.

    Aquí lo que tienes que averiguar es quien esta mutilando tus correos !!! 🙂 Tu servidor de relay o el de tu hosting.

    Saludos !!!

    Responder
  3. Muchas gracias por el tuto, pero, qué pasa si quiero securizarlo? es decir, comentas que por defecto postfix no usa autenticación ni seguridad en la conexión.

    Pero no quiero dejar que cualquiera de la red pueda mandar correos a través de mi servidor relay. ¿cómo puedo crear cuentas en postfix y autenticarme con mi relay?

    Responder
    • Hola Enrique,

      Bueno ese ya es un tema aparte: Encontré en la documentación al respecto que puedes leer en: http://www.postfix.org/SASL_README.html

      Pero leyendo esto surge otra palabra: Dovecot que creo que es lo que estás buscando https://www.dovecot.org/ .

      No le veo mucho sentido asegurar una red local con nombres de usuario y contraseñas, conexiones seguras y todo eso. Pero con Dovecot ya es algo más serio, mucho más completo e integrado.

      Espero que mi comentario te sirva de ayuda.

      ¡Saludos!.

      Responder

¡Me encantaría saber que opinas!

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.