Flasche - Mail
Eine webbasierte Anwendung muss häufig über die Funktion zum Senden von E-Mails an Benutzer / Clients verfügen. Flask-Mail Die Erweiterung macht es sehr einfach, eine einfache Schnittstelle mit jedem E-Mail-Server einzurichten.
Zunächst sollte die Flask-Mail-Erweiterung mithilfe des Pip-Dienstprogramms installiert werden.
pip install Flask-Mail
Anschließend muss Flask-Mail konfiguriert werden, indem Werte der folgenden Anwendungsparameter festgelegt werden.
Sr.Nr. | Parameter & Beschreibung |
---|---|
1 |
MAIL_SERVER Name / IP-Adresse des E-Mail-Servers |
2 |
MAIL_PORT Portnummer des verwendeten Servers |
3 |
MAIL_USE_TLS Aktivieren / Deaktivieren der Verschlüsselung der Transport Security Layer |
4 |
MAIL_USE_SSL Aktivieren / Deaktivieren der Secure Sockets Layer-Verschlüsselung |
5 |
MAIL_DEBUG Debug-Unterstützung. Standard ist der Debug-Status der Flask-Anwendung |
6 |
MAIL_USERNAME Benutzername des Absenders |
7 |
MAIL_PASSWORD Passwort des Absenders |
8 |
MAIL_DEFAULT_SENDER Legt den Standardabsender fest |
9 |
MAIL_MAX_EMAILS Legt die maximale Anzahl der zu sendenden Mails fest |
10 |
MAIL_SUPPRESS_SEND Senden unterdrückt, wenn app.testing auf true gesetzt ist |
11 |
MAIL_ASCII_ATTACHMENTS Bei true werden angehängte Dateinamen in ASCII konvertiert |
Das Flask-Mail-Modul enthält Definitionen der folgenden wichtigen Klassen.
Mail-Klasse
Es verwaltet die Anforderungen für E-Mail-Nachrichten. Der Klassenkonstruktor hat die folgende Form:
flask-mail.Mail(app = None)
Der Konstruktor verwendet das Flask-Anwendungsobjekt als Parameter.
Methoden der Mail-Klasse
Sr.Nr. | Methoden & Beschreibung |
---|---|
1 |
send() Sendet den Inhalt des Nachrichtenklassenobjekts |
2 |
connect() Öffnet die Verbindung zum Mailhost |
3 |
send_message() Sendet ein Nachrichtenobjekt |
Nachrichtenklasse
Es kapselt eine E-Mail-Nachricht. Der Nachrichtenklassenkonstruktor hat mehrere Parameter -
flask-mail.Message(subject, recipients, body, html, sender, cc, bcc,
reply-to, date, charset, extra_headers, mail_options, rcpt_options)
Methoden der Nachrichtenklasse
attach()- Fügt der Nachricht einen Anhang hinzu. Diese Methode verwendet die folgenden Parameter -
filename - Name der anzuhängenden Datei
content_type - MIME-Dateityp
data - Rohdateidaten
disposition - gegebenenfalls inhaltliche Disposition.
add_recipient() - Fügt der Nachricht einen weiteren Empfänger hinzu
Im folgenden Beispiel wird der SMTP-Server des Google Mail-Dienstes als MAIL_SERVER für die Flask-Mail-Konfiguration verwendet.
Step 1 - Importieren Sie die Mail- und Message-Klasse aus dem Flask-Mail-Modul in den Code.
from flask_mail import Mail, Message
Step 2 - Anschließend wird Flask-Mail gemäß den folgenden Einstellungen konfiguriert.
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 - Erstellen Sie eine Instanz der Mail-Klasse.
mail = Mail(app)
Step 4 - Richten Sie ein Nachrichtenobjekt in einer Python-Funktion ein, die durch eine URL-Regel zugeordnet ist (‘/’).
@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- Der gesamte Code ist unten angegeben. Führen Sie das folgende Skript in Python Shell aus und besuchen Siehttp://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)
Beachten Sie, dass die im Google Mail-Dienst integrierten Unsicherheitsfunktionen diesen Anmeldeversuch möglicherweise blockieren. Möglicherweise müssen Sie die Sicherheitsstufe verringern. Melden Sie sich in Ihrem Google Mail-Konto an und besuchen Sie diesen Link, um die Sicherheit zu verringern.