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-Mail
Ensuite, 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, Message
Step 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'] = True
Step 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é.