Configurar Frask-Mail para utilizar GMail

Cuando trato de enviar un correo electrónico utilizando Flask-Mail al servidor SMTP de Gmail usando la configuración a continuación, obtengo el [Errno -2] Name or service not known . ¿Cómo arreglo mi configuración para enviar correos electrónicos con Gmail?

 from flask import Flask, render_template, redirect, url_for from flask_mail import Mail, Message app = Flask(__name__) app.config.update( MAIL_SERVER='smtp@gmail.com', MAIL_PORT=587, MAIL_USE_SSL=True, MAIL_USERNAME = 'ri******a@gmail.com', MAIL_PASSWORD = 'Ma*****fe' ) mail = Mail(app) @app.route('/send-mail/') def send_mail(): msg = mail.send_message( 'Send Mail tutorial!', sender='ri******a@gmail.com', recipients=['ri*********07@msn.com'], body="Congratulations you've succeeded!" ) return 'Mail sent' 

  1. El servidor es “smtp.gmail.com”.
  2. El puerto debe coincidir con el tipo de seguridad utilizado.
    • Si usa STARTTLS con MAIL_USE_TLS = True , entonces use MAIL_PORT = 587 .
    • Si usa SSL / TLS directamente con MAIL_USE_SSL = True , entonces use MAIL_PORT = 465 .
    • Habilite STARTTLS o SSL / TLS, no ambos.
  3. Dependiendo de la configuración de seguridad de su cuenta de Google, es posible que deba generar y usar una contraseña de aplicación en lugar de la contraseña de la cuenta. Esto también puede requerir habilitar la verificación de 2 pasos. Probablemente debería configurar esto de todos modos.
 MAIL_SERVER = 'smtp.gmail.com' MAIL_PORT = 465 MAIL_USE_SSL = True MAIL_USERNAME = 'username@gmail.com' MAIL_PASSWORD = 'app password generated in step 3' 

Una pequeña pero importante adición a la respuesta del davidismo:

Debe tener habilitada la ‘verificación en dos pasos’ en su cuenta de Google antes de poder configurar contraseñas específicas de la aplicación.