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

Envoi de courriels Flask

Les applications web basées sur le Web ont généralement besoin de disposer d'une fonction pour envoyer des e-mails aux utilisateurs/Fonction de l'envoi de courriers électroniques par le client. Flask-L'extension Mail rend très simple de configurer une interface simple pour n'importe quel serveur de messagerie

Au début, Flask-L'extension Mail peut être installée à l'aide de l'outil pip, comme indiqué ci-dessous -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
pip install Flask-Mail

Ensuite, vous devez configurer Flask en définissant les valeurs des paramètres de l'application suivants-Mail.

NuméroParamètresDescription
1MAIL_SERVERNom du serveur de messagerie/Adresse IP
2MAIL_PORTPort du serveur utilisé
3MAIL_USE_TLSActiver/Désactivez le cryptage TLS
4MAIL_USE_SSLActiver/Désactivez le cryptage SSL
5MAIL_DEBUGSupport de débogage, par défaut il s'agit de l'état de débogage de l'application Flask
6MAIL_USERNAMENom d'utilisateur de l'expéditeur
7MAIL_PASSWORDMot de passe de l'expéditeur
8MAIL_DEFAULT_SENDERConfigurez l'expéditeur par défaut
9MAIL_MAX_EMAILSConfigurez le nombre maximum d'e-mails à envoyer
10MAIL_SUPPRESS_SENDSi app.testing est configuré à true, les messages envoyés sont supprimés
11MAIL_ASCII_ATTACHMENTSSi il est configuré à true, le nom du fichier joint est converti en ASCII

flask-Le module mail contient les définitions des classes importantes suivantes.

Classe Mail

Il gère les exigences des messages électroniques. Le constructeur de la classe prend la forme suivante -

NuméroMéthodeDescription
1send()Envoyez le contenu de l'objet Message
2connect()Ouvrez une connexion avec l'hôte de messagerie
3send_message()Envoyez l'objet message

Classe Message

Il encapsule un e-mail, le constructeur de la classe Message a plusieurs paramètres -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
flask-mail.Message(subject, recipients, body, html, sender, cc, bcc, 
    réponse-to, date, charset, extra_headers, mail_options, rcpt_options)

Méthode de la classe Message

attach() - Ajoutez un fichier joint à la message. Cette méthode prend les paramètres suivants - filename - Nom du fichier à joindre content_type - Type MIME du fichier data - Données du fichier original disposition - traitement des contenus, le cas échéant.

add_recipient() - Ajoutez un autre destinataire à la message.

Dans cet exemple, le serveur SMTP du service Gmail de Google est utilisé comme serveur de messagerie pour Flask-Le serveur de messagerie configuré par Mail.

Numéro1Étape - Dans le code, à partir de flask-Le module mail importe les classes Mail et Message.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
from flask_mail import Mail, Message

Numéro2Étape - Ensuite, configurez Flask en fonction des paramètres suivants-Mail.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 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

Numéro3Étape - Créez une instance de la classe Mail.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
mail = Mail(app)

Numéro4Étape - Dans la fonction Python mappée par les règles d'URL ('/dans '))' pour configurer l'objet Message.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 2020-08-08
@app.route("/")
 def index():
     msg = Message('Hello', sender = '[email protected]', recipients = ['[email protected]'])
     msg.body = "This is the email body"
     mail.send(msg)
     return "Sent"

Numéro5Étape - Voici tout le code. Exécutez le script suivant dans le Shell Python et accédez à l'URL : http://localhost:5000/.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : fr.oldtoolbag.com
# Date : 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 "Sent"
 if __name__ == '__main__':
     app.run(debug=True)

Veuillez noter que les fonctionnalités intégrées non sécurisées du service Gmail peuvent bloquer cette tentative de connexion, il peut être nécessaire de réduire le niveau de sécurité. Veuillez vous connecter à votre compte Gmail et accéder à  Ce lienPour réduire la sécurité.