Flacon - Mail
Une application basée sur le Web est souvent nécessaire pour avoir une fonction d'envoi de courrier aux utilisateurs / clients. Flask-Mail L'extension permet de configurer très facilement une interface simple avec n'importe quel serveur de messagerie.
Au début, l'extension Flask-Mail doit être installée à l'aide de l'utilitaire pip.
pip install Flask-MailEnsuite, Flask-Mail doit être configuré en définissant les valeurs des paramètres d'application suivants.
| Sr.Non | Paramètres et description | 
|---|---|
| 1 | MAIL_SERVER Nom / adresse IP du serveur de messagerie | 
| 2 | MAIL_PORT Numéro de port du serveur utilisé | 
| 3 | MAIL_USE_TLS Activer / désactiver le chiffrement de la couche de sécurité du transport | 
| 4 | MAIL_USE_SSL Activer / désactiver le cryptage Secure Sockets Layer | 
| 5 | MAIL_DEBUG Prise en charge du débogage. La valeur par défaut est l'état de débogage de l'application Flask | 
| 6 | MAIL_USERNAME Nom d'utilisateur de l'expéditeur | 
| sept | MAIL_PASSWORD mot de passe de l'expéditeur | 
| 8 | MAIL_DEFAULT_SENDER définit l'expéditeur par défaut | 
| 9 | MAIL_MAX_EMAILS Définit le nombre maximal de mails à envoyer | 
| dix | MAIL_SUPPRESS_SEND Envoi supprimé si app.testing défini sur true | 
| 11 | MAIL_ASCII_ATTACHMENTS Si défini sur true, les noms de fichiers attachés sont convertis en ASCII | 
Le module flask-mail contient les définitions des classes importantes suivantes.
Classe de courrier
Il gère les exigences de messagerie électronique. Le constructeur de classe prend la forme suivante -
flask-mail.Mail(app = None)Le constructeur prend l'objet d'application Flask comme paramètre.
Méthodes de classe Mail
| Sr.Non | Méthodes et description | 
|---|---|
| 1 | send() Envoie le contenu de l'objet de classe Message | 
| 2 | connect() Ouvre la connexion avec l'hôte de messagerie | 
| 3 | send_message() Envoie un objet de message | 
Classe de message
Il encapsule un message électronique. Le constructeur de classe de message a plusieurs paramètres -
flask-mail.Message(subject, recipients, body, html, sender, cc, bcc, 
   reply-to, date, charset, extra_headers, mail_options, rcpt_options)Méthodes de classe de message
attach()- ajoute une pièce jointe au message. Cette méthode prend les paramètres suivants -
- filename - nom du fichier à joindre 
- content_type - Type de fichier MIME 
- data - données de fichier brutes 
- disposition - disposition du contenu, le cas échéant. 
add_recipient() - ajoute un autre destinataire au message
Dans l'exemple suivant, le serveur SMTP du service gmail de Google est utilisé comme MAIL_SERVER pour la configuration Flask-Mail.
Step 1 - Importez la classe Mail et Message du module flask-mail dans le code.
from flask_mail import Mail, MessageStep 2 - Ensuite, Flask-Mail est configuré selon les paramètres suivants.
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'] = TrueStep 3 - Créez une instance de la classe Mail.
mail = Mail(app)Step 4 - Configurer un objet Message dans une fonction Python mappée par une règle d'URL (‘/’).
@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"Step 5- Le code complet est donné ci-dessous. Exécutez le script suivant dans Python Shell et visitezhttp://localhost:5000/.
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)Notez que les fonctionnalités d'insécurité intégrées du service Gmail peuvent bloquer cette tentative de connexion. Vous devrez peut-être diminuer le niveau de sécurité. Veuillez vous connecter à votre compte Gmail et visiter ce lien pour diminuer la sécurité.
