Envío de correos electrónicos usando API en Flask-Mail

Python, al ser un lenguaje poderoso, no necesita ninguna biblioteca externa para importar y ofrece una biblioteca nativa para enviar correos electrónicos: «SMTP lib». «smtplib» crea un objeto de sesión de cliente de Protocolo simple de transferencia de correo que se utiliza para enviar correos electrónicos a cualquier identificación de correo electrónico válida en Internet. Este artículo gira en torno a cómo podemos enviar correos electrónicos masivos personalizados a un grupo de personas con la ayuda de Flask.

Instalación :

Se requieren tres paquetes para que funcione el correo del matraz, instálelo y luego use pip,

1) entorno virtual:

pip install virtualenv

2) Frasco:

pip install Flask

3) Frasco-Correo:

pip install Flask-Mail

Después de instalar los paquetes, tenemos que usar virtualenv (opcional)
1) Crear un virtualenv
Abrir cmd
Vaya a la carpeta que desea usar para su proyecto.
Escribe el siguiente código:

        
python3 -m venv env (macOS/Linux)
py -m venv env (Windows)

Aquí env es el nombre de su entorno.
2) Activar el entorno
en Windows :

.\env\Scripts\activate

En macOS/Linux :

source env/bin/activate

3) Asegúrese de obtener el (env) al principio que se muestra en la imagen a continuación:

Configuración de Flask-Mail

Flask-Mail se configura a través de la API de configuración estándar de Flask. Estas son las opciones disponibles (cada una se explica más adelante en la documentación):

1) MAIL_SERVER : Nombre/dirección IP del servidor de correo electrónico.
2) MAIL_PORT : número de puerto del servidor utilizado.
3) MAIL_USE_TLS : habilitar/deshabilitar el cifrado de la capa de seguridad de transporte.
4) MAIL_USE_SSL : habilitar/deshabilitar el cifrado de capa de sockets seguros
5) MAIL_DEBUG : soporte de depuración. El valor predeterminado es el estado de depuración de la aplicación Flask.
6) MAIL_USERNAME : Nombre de usuario del remitente
7) MAIL_PASSWORD : La contraseña del correspondiente Nombre de usuario del remitente.
8) MAIL_ASCII_ATTACHMENTS : si se establece en verdadero, los nombres de archivo adjuntos se convierten a ASCII.
9)MAIL_DEFAULT_SENDER : establece el remitente predeterminado
10) MAIL_SUPPRESS_SEND : envío suprimido si app.testing se establece en verdadero
11) MAIL_MAX_EMAILS : establece el máximo de correos que se enviarán

Nota: No se debe establecer toda la configuración.

Envío de correos electrónicos usando Flask-Mail

Clases en Flask-Mail:
Clase de correo: administra los requisitos de mensajería de correo electrónico
Clase de mensaje: encapsula un mensaje de correo electrónico

Pongamos nuestras manos en el código.

# importing libraries
from flask import Flask
from flask_mail import Mail, Message
   
app = Flask(__name__)
mail = Mail(app) # instantiate the mail class
   
# configuration of mail
app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USERNAME'] = 'yourId@gmail.com'
app.config['MAIL_PASSWORD'] = '*****'
app.config['MAIL_USE_TLS'] = False
app.config['MAIL_USE_SSL'] = True
mail = Mail(app)
   
# message object mapped to a particular URL ‘/’
@app.route("/")
def index():
   msg = Message(
                'Hello',
                sender ='yourId@gmail.com',
                recipients = ['receiver’sid@gmail.com']
               )
   msg.body = 'Hello Flask message sent from Flask-Mail'
   mail.send(msg)
   return 'Sent'
   
if __name__ == '__main__':
   app.run(debug = True)

Guárdelo en un archivo y luego ejecute el script en Python Shell o CMD y visite http://localhost:5000/.

Nota:
debido a las funciones de seguridad integradas de Google, el servicio de Gmail puede bloquear este intento de inicio de sesión. Puede que tenga que disminuir el nivel de seguridad. Visite https://myaccount.google.com/lesssecureapps?pli=1 para disminuir la seguridad.

Publicación traducida automáticamente

Artículo escrito por ayushsaxena77 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *