Postfix con relay SMTP con autenticacion

Aquí traigo un breve tutorial de algo que he tenido que montar hace un ratito y que viene bien tener a mano. Un Postfix con relay SMTP con autenticacion auth plain. Esto nos permitirá utilizar un servidor smtp externo (un servicio de pago o el que nos proporcione nuestro proveedor de servicios) para enviar los correos y gestionar los mensajes diferidos y reintentos, así como poder evitar problemas de listas RBL en caso de que tengamos una ip donámica, por ejemplo.

Lo primero que deberemos crear es un archivo donde alojaremos el usuario y contraseña de acceso al SMTP que usemos de relay (Smarthost en Postfix). Podemos usar /etc/postfix/usuariorelay.conf

Dentro del archivo, ponemos lo siguiente:

#host.relay.smtp usuario:contrasenia
mismtp.midominio.es usuario@midominio.es:contrasenia

Después, como no queremos que nadie pueda leer el usuario que usamos para enviar el mail, le aplicaremos un poco de seguridad con

chown root:root /etc/postfix/usuariorelay.conf; chmod 0600 /etc/postfix/usuariorelay.conf

Ahora actualizamos postfix haciendole saber los valores que hemos introducido en el fichero

postmap hash:/etc/postfix/usuariorelay.conf

Editamos el /etc/postfix/main.cf y buscamos por si ya hubiese una linea con definición de «relayhost». Si no, añadimos lo siguiente:

relayhost=mismtp.midominio.es
smtp_sasl_auth_enable=yes
smtp_sasl_password_maps=hash:/etc/postfix/usuariorelay.conf
smtp_sasl_security_options=

Una vez hecho esto, reiniciaremos el postfix y podremos probar si funciona ejecutando lo siguiente:

echo "Mensaje de Prueba" |mail -s "Asunto de Prueba" tu_direccion@de.email.es

Para esta última prueba se usa mail, correspondiente al paquete heirloom-mailx