Configurar Postfix en Mac Os X
Posted by Rulo | Filed under framework, herramientas, mac
Para el framework que estoy armando, necesito poder enviar emails ya sea de una transformación xsl o si el sistema encuentra un error (mostrando una pagina user friendly en el front y el detalle del error me lo envia por email).
Para lograr que el ambiente de desarrollo sea lo mas identico posible al productivo, es necesario configurar el postfix en el Os X Leopard, para que la configuración del sistema siempre apunte al servidor donde está corriendo.
Asi, configurando el smtp de gmail, podemos tener andando los envios de mails desde nuestro servidor local.
Para que la configuración funcione, es necesario bajar y descomprimir los certificados:
https://www.verisign.com/support/roots.html
Por terminal crear la carpeta (si no existe): /etc/postfix/certs
sudo mkdir /etc/postfix/certs
Copiar y Expandir el zip bajado con los certificados ahi
sudo cp /Users/xxx/Desktop/roots.zip /etc/postfix/certs/roots.zip
sudo unzip -j roots.zip
sudo openssl x509 -inform der -in Thawte\ Premium\ Server\ CA.cer -out Thawte\ Premium\ Server\ CA.pem
c_rehash /etc/postfix/certs
Ya tenemos los certificados, ahora vamos a crear un archivo con la url smtp del server y el usuario y pass.
Para hacer esto, estando posicionados en la carpeta /etc/postfix creamos un archivo llamado relay_password
sudo vi relay_password
Esto creara el archivo vacío, donde ponemos:
smtp.gmail.com username@gmail.com:password
Mapeamos el archivo para crear un archivo .db
postmap relay_password
Chequeamos que el mapeo esté correcto con:
postmap -q smtp.gmail.com /etc/postfix/relay_password
Nos va a aparecer la dirección de email que pusimos en el archivo y el pass.
Ahora que ya tenemos todo esto, solo nos queda configurar el postfix. Para eso abrimos para editar el archivo: /etc/postfix/main.cf
sudo vi /etc/postfix/main.cf
Agregamos al final del archivo estas líneas:
relayhost = smtp.gmail.com:587
# auth
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/relay_password
smtp_sasl_security_options = noanonymous
# tls
smtp_tls_security_level = may
smtp_tls_CApath = /etc/postfix/certs
smtp_tls_session_cache_database = btree:/etc/postfix/smtp_scache
smtp_tls_session_cache_timeout = 3600s
smtp_tls_loglevel = 1
tls_random_source = dev:/dev/urandom
Y guardamos.
Recargamos la configuración postfix:
sudo postfix reload
Ya podemos usar el envio de mail desde nuestras paginas en el servidor local. Si por alguna razon no se envian los mails, se puede chequear el log de mails encolados (mail queue) y ahi podremos ver que pasó.
mailq
Corriendo el MAMP en Os X, con esta opcion los desarrollos locales pueden utilizar el envio de emails. Aunque en la dirección de mail del remitente aparezca la cuenta que configuramos en el postfix, una vez en producción tomará la configuración del server, con la direccion de remitente que tengamos configurada en el sistema.
