jueves, 11 de julio de 2013

Configurar el correo en Sakai con tu dominio

Me surgió la necesidad de configurar el correo de un Sakai para que enviara los mensajes de confirmación y resumen pero tenía ciertas restricciones que me hacían la vida un poco más complicada. 

1. Tenía un dominio (llamémosle tutordemia.es) , pero no tenía un hosting de correo para ese dominio, y se quería que el correo fuera con la dirección de ese dominio (noreply@tutordemia.es) 

2. Tenía un servidor Centos con Postfix y en principio no se deseaba instalar nada más. 

La primera opción que se barajó fue tratar de configurar el postfix para que enviara esos correos y enlazar Sakai con el postfix. Ahora diré cómo lo hice, pero debo advertir que descarté posteriormente esta opción porque los servidores de correo detectaban mis correos como phishing al mandar con un remitente que no era el original los correos. (Igual hay alguna forma avanzada de configurar eso, pero mis conocimientos sobre postfix son limitados) 

¿Cómo realicé esto? 

Configuración en Sakai: 
FICHERO: sakai.properties
Descomenté y rellené estos parámetros 

Para que se conectara con el postfix 
smtp@org.sakaiproject.email.api.EmailService=localhost 

Para el remitente de los correos 
setup.request=noreply@tutordemia.es

Configuración en postfix
FICHERO: main.cf (que suele estar en /etc/postfix/)

Pues estos parámetros para que "pareciera" que el correo era de tutordemia.es
myhostname = mail.tutordemia.es
mydomain = tutordemia.es
myorigin = $mydomain

Y Este muy importante, porque a pesar de lo anterior y de que el remitente que aparecía en el correo final era el que yo definía en sakai, a nivel interno, me seguía mandado los correos con la IP del servidor y eso me daba un error que se soluciona poniendo esto:
resolve_numeric_domain = yes

Con esto conseguí que Sakai mandara correos... pero me llegaban al spam, porque gmail, por ejemplo, detectaba que el remitente era noreply@tutordemia.es, pero que el correo venía de miservidor@300.320.300.200 (es una ip ficticia para el ejemplo) y lo mandaba a spam.

Seguramente habrá alguna forma de solucionar esto... pero yo no di con ella, así que... si no puedes con tu enemigo, alíate con el...

Estuve mirando los registros SPF que permiten definir en tu dominio qué servidores pueden mandar tus correos de forma legal, pero en mi host de dominio no encontré cómo crear esos registros (http://www.openspf.org/SPF_Record_Syntax)

Pero bueno, el host del dominio (aunque no haya un hosting de correo contratado) s sí permite  redirecciones de correo, de forma que me cree una dirección en gmail con el nombre que yo quise (pongamos tutordemia@gmail.com) y un alias en el servidor de hosting que redirigía noreply@tutordemia.es a tutordemia@gmail.com

En Gmail hay una opción para enviar correos en nombre de otra cuenta, así que entrando en las opciones de gmail, habilité que tutordemia@gmail.com pudiera mandar correos en nombre de noreply@tutordemia.es (para ello gmail te manda un código a la dirección original en la que confirmas que es tuya, pero como ya la tenía redireccionada a la de gmail, me llegó sin problema :)

Una vez comprobé que podía mandar y recibir correos con noreply@tutordemia.es desde esa cuenta de gmail, lo que había que hacer era configurar sakai para que los mandara por gmail directamente.

Para ello, de nuevo modifiqué el Sakai. properties (ojo, hay un error que luego comento y corrijo, y es usar la contraseña de la cuenta de gmail)


## OUTGOING EMAIL
# SMTP server for outgoing emails.
smtp@org.sakaiproject.email.api.EmailService=smtp.gmail.com

# SMTP port to connect to outgoing SMTP Server
# Default: 25
smtpPort@org.sakaiproject.email.api.EmailService=465

# UserName to connect to SMTP server (Optional)
smtpUser@org.sakaiproject.email.api.EmailService=tutordemia@gmail.com 

# Password for connection to SMTP server (Optional)
smtpPassword@org.sakaiproject.email.api.EmailService=LACONTRASEÑADELACUENTADEGMAIL

# Use SSL/TLS to connect to the SMPT server 
# default: false
smtpUseSSL@org.sakaiproject.email.api.EmailService=true 

# Email address used as the "from" address for any email sent by Worksite Setup tool or Site Info tool.

setup.request=noreply@tutordemia.es

¿Cual era el problema ahora...?  Que gmail no me deja abrir sesión con el usuario y la contraseña normal, porque me da un mensaje de que debo abrirla desde un navegador.

La solución: 

Existe una forma en google (en los settings de la cuenta de google apps, no de gmail) que te permite definir aplicaciones en las que confías y generar una contraseña específica para esa aplicación. En este caso para mi Sakai.

Es necesario para ello (si no no te deja generar contraseñas) habilitar el acceso en dos pasos a la cuenta de gmail es decir, tienes que hacer que cada vez que te conectes desde un sitio diferente te mande un SMS con un código para confirmar. Bueno, sólo te lo manda la primera vez, una vez lo metes, ese PC, móvil o lo que sea, queda validado ya para siempre. (https://support.google.com/accounts/answer/180744?hl=es&ref_topic=1099588)

Una vez habilitado eso, generé mi contraseña específica para Sakai.(https://support.google.com/accounts/answer/185833?rd=1)
Y la metí en  smtpPassword@org.sakaiproject.email.api.EmailService

Desde ese momento ya me funciona el correo, no llega a spam y el remitente es noreply@tutordemia.es

No es la solución que hubiera deseado, porque preferiría mandarlos con el postfix... pero... de momento me sirve.

Lo que me gustaría de todas formas, es que si esto lo lee un experto en postfix, me dijera cómo configurar postfix para que mande los correos como toca y para que gmail no los detecte como spam, sin tener que hacer lo de gmail... porque estoy convencido de que si el volumen de correos empieza a ser grande, tendré problemas.






No hay comentarios:

Publicar un comentario