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.