Relay autenticado con Postfix y Gmail
La intención de este artículo es explicar cómo enviar mails desde un servidor con Postfix utilizando de relay a Gmail con un usuario y contraseña. Puede resultar útil si queremos enviar mails que no sean enviados a Spam o simplemente rechazados para el caso que tengamos una IP dinámica o simplemente necesitemos contar con envío de mails de forma rápida.
Configuración de Postfix
La configuración de Postfix es muy sencilla y demanda editar sólo dos archivos. Se ven los mismos a continuación y se deja una explicación de qué significa cada línea introducida.
/etc/postfix/main.cf
Dejar en este archivo sólo la siguiente información (omitiendo los números, que son utilizados sólo como referencia):
1 relayhost = [smtp.gmail.com]:587 2 3 smtp_use_tls = yes 4 smtp_tls_CAfile = /etc/postfix/cacert.pem 5 6 smtp_sasl_auth_enable = yes 7 smtp_sasl_password_maps = hash:/etc/postfix/sasl/passwd 8 smtp_sasl_security_options = noanonymous
La explicación de la directiva en cada una de las líneas es:
- 1: se le indica que el host con el cual se debe hacer relay es smtp.gmail.com y el puerto en 587. Se ponen corchetes para impedir que resuelve un MX para ese nombre.
- 3: con esta línea, postfix sabe que deberá utilizar TLS para encriptar la comunicación.
- 4: la ubicación del certificado de la CA, para asegurarse que el host remoto corresponde con quién dice ser.
- 6: se habilita la autenticación SASL.
- 7: ubicación del archivo que contiene las passwords para utilizar en la autenticación. La directiva hash indica que existe un archivo .db con la información (que se creará con el comando postmap más adelante).
- 8: se le dice a postfix que no se permite la autenticación anónima.
/etc/postfix/sasl/passwd
Reemplazar en la siguiente línea los datos de la cuenta que será utilizada para hacer el relay.
[smtp.gmail.com]:587 usuario@gmail.com:password
Luego, desde la consola se debe crear el archivo .db para postfix y cambiarle los permisos al archivo original para protegerlo.
postmap /etc/postfix/sasl/passwd chmod 400 /etc/postfix/sasl/passwd
Importar el certificado de la CA
Finalmente, debemos especificar a Postfix el certificado de la CA que deseamos que utilice. Para ello:
cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem >> /etc/postfix/cacert.pem
Cuentas de Google Apps
Si en lugar de utilizar una cuenta de Gmail se usa una de Google Apps el tutorial sirve igual. Basta simplemente con reemplazar usuario@gmail.com por usuario@dominio.
Posts relacionados:




10 puntos!!!
Yo vengo del mundo de Qmail, desde hace pocos días estoy renegando con el pfix. Voy a probar eso para ver que onda…
La pregunta es:
Cada usuario de gmail tiene una determinada quota de mails por día. ¿Puede saltarse esto con el sistema que estás planteando?
Saludos!!
@Ariel Weher
No sabía del límite de Gmail! No obstante, no es posible saltarlo con esta estrategia pues lo que hace es simplemente conectarse como lo haría un cliente de correo, con lo cuál trabajarías con el límite más bajo (el de los clientes POP3 e IMAP).
De cualquier manera el límite es difícil de alcanzar ya que por lo que se explica en la ayuda de Gmail no puede enviarse el mismo mensaje a más de 100 personas al mismo tiempo, lo cuál no supone un problema para la necesidad planteada en el artículo.
Saludos y gracias por el aporte!