viernes, 9 de enero de 2015

Enviar correos usando SMTP con una cuenta de Gmail

Si queremos hacer uso de una cuenta de Google para enviar correos usando SMTP (ej: Al enviar correos automatizados en una aplicación web), hay algunos pasos que debemos seguir:

  1. Dar los valores de configuración del servidor de Google en nuestra aplicación: Estos valores son:
    • Servidor SMTP (host): smtp.gmail.com
    • Puerto: 465
    • Usuario: Tu usuario de gmail (ej: miusuario@gmail.com)
    • Contraseña: Tu contraseña
    Es probable que incluso con estos datos no podamos enviar correos y obtengamos un error como:
    Connection to smtp.gmail.com:465 Timed Out
    Este error se debe a que no se reconoce correctamente el tipo de encriptación.
  2. Definir el tipo de encriptación: Dependiendo de qué aplicación estemos usando es probable que necesitemos definir esta variable. El valor debe ser sslv3.
    Incluso después de esto podriamos obtener un error como el siguiente al tratar de enviar un correo.
    Failed to authenticate on SMTP server with username "miusuario@gmail.com" using 2 possible authenticators
    Esto puede suceder como cuando estamos enviando los correos a través de un script PHP.
  3. Configurar la política de seguridad en nuestra cuenta de gmail: Luego de haber intentado enviar el correo, seguramente recibiremos un correo en nuestra cuenta de gmail informándonos de un intento de inicio de sesión bloqueado. En este correo se describe desde donde se intentó hacer el ingreso y nos dan instrucciones para permitir el inicio de sesión en caso de que no sea un intento fraudulento. Lo que se debe hacer es ir a Cuenta -> Acceso de aplicaciones menos seguras. Allí habilitamos el acceso y Listo!
Con esto ya deberíamos poder enviar correos desde nuestra aplicación usando SMTP con una cuenta de Google.