English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Envío de correo de Flask

Las aplicaciones web basadas en la web suelen necesitar tener la capacidad de enviar correos electrónicos a los usuarios/Función de envío de correo electrónico del cliente. Flask-La extensión Mail hace que sea muy simple configurar una interfaz simple para cualquier servidor de correo electrónico

Inicialmente, Flask-La extensión Mail se puede instalar con la herramienta pip, como se muestra a continuación -

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
pip install Flask-Mail

Luego es necesario configurar los valores de los siguientes parámetros de la aplicación para configurar Flask-Mail.

NúmeroParámetrosDescripción
1MAIL_SERVERNombre del servidor de correo/Dirección IP
2MAIL_PORTEl número de puerto del servidor utilizado
3MAIL_USE_TLSHabilitar/Deshabilitar la encriptación de capa de transporte segura
4MAIL_USE_SSLHabilitar/Deshabilitar la encriptación de capa de seguridad de sockets
5MAIL_DEBUGSoporte de depuración, predeterminado es el estado de depuración de la aplicación Flask
6MAIL_USERNAMENombre de usuario del remitente
7MAIL_PASSWORDContraseña del remitente
8MAIL_DEFAULT_SENDERConfigurar el remitente predeterminado
9MAIL_MAX_EMAILSConfigurar el número máximo de correos electrónicos a enviar
10MAIL_SUPPRESS_SENDSi app.testing se establece en true, se suprime el envío
11MAIL_ASCII_ATTACHMENTSSi se establece en true, se convierte el nombre del archivo adjunto en ASCII

flask-El módulo mail contiene las definiciones de las siguientes clases importantes.

Clase Mail

Maneja los requisitos de mensaje de correo electrónico. El constructor de la clase toma la siguiente forma -

NúmeroMétodoDescripción
1send()Enviar el contenido del objeto Message
2connect()Abrir conexión con el host de correo
3send_message()Enviar el objeto mensaje

Clase Message

It encapsulates an email, the constructor of the Message class has several parameters -

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
flask-mail.Message(subject, recipients, body, html, sender, cc, bcc, 
    respuesta-to, date, charset, extra_headers, mail_options, rcpt_options)

Método de la clase Message

attach() - Agregue un archivo adjunto al mensaje. Este método toma los siguientes parámetros - filename - el nombre del archivo que se va a adjuntar content_type - el tipo MIME del archivo data - datos del archivo original disposition - tratamiento de contenido, si lo hay.

add_recipient() - Agregue otro destinatario al mensaje

En el siguiente ejemplo, se utiliza el servidor SMTP del servicio Gmail de Google como servidor de Flask-El servidor de correo configurado por Mail.

Número1Paso - Desde flask-El módulo mail importa las clases Mail y Message.

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
from flask_mail import Mail, Message

Número2Paso - Luego configure Flask según las siguientes configuraciones-Mail.

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
app.config['MAIL_SERVER']='smtp.gmail.com'
 app.config['MAIL_PORT'] = 465
 app.config['MAIL_USERNAME'] = '[email protected]'
 app.config['MAIL_PASSWORD'] = "*****"
 app.config['MAIL_USE_TLS'] = False
 app.config['MAIL_USE_SSL'] = True

Número3Paso - Cree una instancia de la clase Mail.

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
mail = Mail(app)

Número4Paso - En la función Python mapeada por las reglas de URL (/en el ) se configura el objeto Message.

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
@app.route("/)")
 def index():
     msg = Message('Hello', sender='[email protected]', recipients=['[email protected]'])
     msg.body = "Este es el cuerpo del correo electrónico"
     mail.send(msg)
     return "Enviado"

Número5Paso - Todo el código se muestra a continuación. Ejecute el siguiente script en el Shell de Python y acceda a la URL: http://localhost:5000/.

# Nombre de archivo : example.py
# Derechos de autor : 2020 Por w3codebox
# Autor por: es.oldtoolbag.com
# Fecha : 2020-08-08
from flask import Flask
 from flask_mail import Mail, Message
 app = Flask(__name__)
 mail=Mail(app)
 app.config['MAIL_SERVER']='smtp.gmail.com'
 app.config['MAIL_PORT'] = 465
 app.config['MAIL_USERNAME'] = '[email protected]'
 app.config['MAIL_PASSWORD'] = "*****"
 app.config['MAIL_USE_TLS'] = False
 app.config['MAIL_USE_SSL'] = True
 mail = Mail(app)
 @app.route("/)")
 def index():
     msg = Message('Hello', sender='[email protected]', recipients=['[email protected]'])
     msg.body = "Hello Flask message sent from Flask-Mail"
     mail.send(msg)
     return "Enviado"
 if __name__ == '__main__':
     app.run(debug=True)

Tenga en cuenta que las funciones inseguras integradas en el servicio de Gmail pueden bloquear este intento de inicio de sesión, es posible que necesite reducir el nivel de seguridad. Inicie sesión en su cuenta de Gmail y acceda a  Este enlacePara reducir la seguridad.