Flask Mail para enviar Emails

- Andrés Cruz

In english

Flask Mail, permite enviar correos electrónicos mediante un cliente SMTP previamente configurado en la aplicación en Flask; para instalar el paquete, tenemos:

$ pip install flask-mail

Configuraremos el servidor SMTP al cual vamos a conectarnos en el archivo de configuración:

app\my_app\config.py

class DevConfig(Config): 
    MAIL_SERVER = 'localhost' 
    MAIL_PORT = 25 
    MAIL_USERNAME = 'username' 
    MAIL_PASSWORD = 'password' 

Y en el modo de desarrollo, también habilitamos:

app\my_app\config.py

class DevConfig(Config):
    ***
    MAIL_DEBUG = True
    MAIL_SUPPRESS_SEND = False
    TESTING = True

Registramos la extensión de manera global a nivel de la aplicación:

app\my_app\__init__.py

from flask_mail import Mail
***
mail = Mail()
mail.init_app(app)

El siguiente código lo puedes tener de referencia para enviar emails según las configuraciones realizadas anteriormente:

from flask_mail import Message
from my_app import mail

def send_email():
    msg = Message(body="Text Example", 
                  sender="no-reply@MyWeb.net",
                  recipients=["andres@gmail.com"], subject="Subject")
    try:
        print(mail.send(msg))
    except Exception as e:
        print(e)

Si quieres definir contenido HTML:

msg = Message("Hello", sender=("Me", "me@example.com"))
msg.html = "<b>testing</b>"

O simplemente texto:

msg = Message("Hello", sender=("Me", "me@example.com"))
msg.body = "testing"

Puedes obtener más información en:

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy