Configurar Postfix en Mac Os X

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.

4 Comentarios

  1. Martin dijo:
    November 14th, 2009 at 9:19 am

    Excellent!. It works smoothly.
    Thank you very much.

  2. Diego Armando dijo:
    November 19th, 2009 at 2:42 pm

    hola como puedo comprobar que el correo se esta enviando, yo estoy haciendo una formulario de contacto y para probarlo localmente sigo los pasos que tu indicas, pero no se envia nada a mi correo, no se mas o menos que moverle

  3. alvaro dijo:
    February 6th, 2010 at 4:24 am

    como puedo guardar el archivo que creo?¿ no se el comando a introducir y me estoy volviendo loco

  4. Rulo dijo:
    February 14th, 2010 at 4:16 pm

    Guardar cual archivo? cuando estas editando con el vi del terminal, para guardar y cerrar el comando es ‘:wq’ sin las comillas

Dejar Comentario