In dieser Lektion werde ich das Skript weitergeben, mit dem ich E -Mails an die Benutzer der Apps sende, die ich erstelle, und mehr.
Was wir tun werden?
Wir werden ein einfaches Python -Programm erstellen, das Folgendes ausführt:
Diese Punkte machen dieses Programm einer realen Nutzung des Sendens von E-Mails in Ihren Apps viel näher. Lass uns anfangen.
Datei für E -Mails
Die Datei, die die E -Mails für die Benutzer enthält, sieht so aus:
Shubham Shubham.Code@Google Mail.com
Dies ist nur eine einfache Textdatei, die den Namen und die E -Mail des Benutzers enthält, die durch den Speicherplatz getrennt sind. Mit den Daten jedes Benutzers in einer neuen Zeile wurden mehrere E -Mails eingestellt. Wir haben diese Datei benannt Benutzer.txt.
Verwenden der Vorlage
Lassen Sie uns auch schnell die Vorlage definieren, die wir in unserem Skript verwenden werden, um Werte zu ersetzen:
Hallo $ person_name,
Wir haben diese E -Mail mit dem Python SMTPlib -Modul gesendet. Cool, richtig?
Einen hellen Tag vor sich haben!
Beifall
Wir haben eine Vorlagenzeichenfolge verwendet $ Person_name Dies wird durch den Namen der Person ersetzt, die wir von den Benutzern erhalten.TXT -Datei beim Senden der E -Mail.
Benutzerdaten aus der Datei abrufen
Der erste Schritt, um E -Mail an einen Benutzer zu senden. Schreiben wir eine Python -Funktion, die einen Dateinamen akzeptiert und den Namen und E -Mail -IDs der US -Benutzer zurückgibt, bei denen die E -Mails gesendet werden müssen:
Def get_users_data (Datei_Name):
user_name = []
user_email = []
mit öffnen (Datei_Name, modus = 'r', coding = 'utf-8') als user_file:
für user_info in user_file:
Nutzername.append (user_info.split () [0])
Benutzer Email.append (user_info.split () [1])
user_name, user_email zurückgeben
Mit dieser Funktion geben wir nur die Namen und E -Mails des Benutzers zurück, mit denen wir die Datei formen.
Das Vorlagenobjekt erhalten
Jetzt können wir unsere Vorlage analysieren und ein Vorlagenobjekt aus der von uns erstellten Textdatei abrufen:
Def read_template (Datei_Name):
mit öffnen (Datei_Name, 'R', coding = 'utf-8') als msg_template:
msg_template_content = msg_template.lesen()
Rückgabevorlage (msg_template_content)
Damit werden wir ein Vorlagenobjekt zurückerhalten, mit dem wir den Inhalt der Datei analysieren und den erforderlichen Ersatz für die Vorlagenzeichenfolgen wie den Namen eines Benutzers vornehmen können.
Wie E -Mail -Senden erledigt ist?
Nachdem wir jetzt mit dem Vorlagendesign und den Daten des Benutzers fertig sind, müssen wir verstehen, wie eine E -Mail tatsächlich an den Benutzer gesendet wird:
Einrichten der SMTP -Verbindung
Lassen Sie uns schließlich die Funktion definieren, die die E -Mail an die benannten Benutzer senden wird. Hier ist die Funktion:
Def Main ():
user_name, user_email = get_users_data ('Benutzer.txt ') # Benutzerdetails lesen
message_template = read_template ('Nachricht.txt')
# Richten Sie den SMTP -Server ein
SMTPLIB_SERVER = SMTPLIB.SMTP (Host = 'SMTP.Google Mail.com ', port = 587)
SMTPLIB_SERVER.Starttls ()
SMTPLIB_SERVER.Login (send_from, E -Mail_PWD)
# Holen Sie sich jedes Benutzerdetail und senden Sie die E -Mail:
Für den Namen E -Mail in ZIP (user_name, user_email):
Multipart_Message = MimemultiPart () # Erstellen einer Nachricht
# Fügen Sie den tatsächlichen Personennamen der Nachrichtenvorlage hinzu
msg = message_template.Ersatz (Person_Name = Name.Titel())
# Druckt den Meldungskörper für unseren Sake aus
Druck (MSG)
# Richten Sie die Parameter der Nachricht ein
Multipart_Message ['aus'] = send_from
Multipart_Message ['to'] = E -Mail
Multipart_Message ['Betreff'] = "LinuxHint -E -Mail"
# In den Nachrichtenkörper hinzufügen
Multipart_Message.atat (mimetext (msg, 'einfache'))
# Senden Sie die Nachricht über den früher eingerichteten Server.
SMTPLIB_SERVER.send_message (Multipart_Message)
Del Multipart_Message
# Beenden Sie die SMTP -Sitzung und schließen Sie die Verbindung
SMTPLIB_SERVER.aufhören()
In der obigen Funktion befolgten wir jedem Schritt, den wir im vorherigen Abschnitt angegeben haben. Wir haben die SMTP -Verbindung konstruiert und sie verwendet, um die E -Mail zu senden.
Vollständiges Programm
Schauen wir uns im letzten Abschnitt das vollständige Programm an, mit dem die E -Mail an den festgelegten Benutzer gesendet werden kann:
SMTPLIB importieren
Aus der String -Importvorlage
aus der Email.Mime.Mehrparteigerer Import Mimemultipart
aus der Email.Mime.Textimport Mimetext
Send_from = 'my-email-hier' '
E-Mail_pwd = 'My-password-hier' '
Def get_users_data (Datei_Name):
user_name = []
user_email = []
mit öffnen (Datei_Name, modus = 'r', coding = 'utf-8') als user_file:
für user_info in user_file:
Nutzername.append (user_info.split () [0])
Benutzer Email.append (user_info.split () [1])
user_name, user_email zurückgeben
Def read_template (Datei_Name):
mit öffnen (Datei_Name, 'R', coding = 'utf-8') als msg_template:
msg_template_content = msg_template.lesen()
Rückgabevorlage (msg_template_content)
Def Main ():
user_name, user_email = get_users_data ('Benutzer.txt ') # Benutzerdetails lesen
message_template = read_template ('Nachricht.txt')
# Richten Sie den SMTP -Server ein
SMTPLIB_SERVER = SMTPLIB.SMTP (Host = 'SMTP.Google Mail.com ', port = 587)
SMTPLIB_SERVER.Starttls ()
SMTPLIB_SERVER.Login (send_from, E -Mail_PWD)
# Holen Sie sich jedes Benutzerdetail und senden Sie die E -Mail:
Für den Namen E -Mail in ZIP (user_name, user_email):
Multipart_Message = MimemultiPart () # Erstellen einer Nachricht
# Fügen Sie den tatsächlichen Personennamen der Nachrichtenvorlage hinzu
msg = message_template.Ersatz (Person_Name = Name.Titel())
# Druckt den Meldungskörper für unseren Sake aus
Druck (MSG)
# Richten Sie die Parameter der Nachricht ein
Multipart_Message ['aus'] = send_from
Multipart_Message ['to'] = E -Mail
Multipart_Message ['Betreff'] = "LinuxHint -E -Mail"
# In den Nachrichtenkörper hinzufügen
Multipart_Message.atat (mimetext (msg, 'einfache'))
# Senden Sie die Nachricht über den früher eingerichteten Server.
SMTPLIB_SERVER.send_message (Multipart_Message)
Del Multipart_Message
# Beenden Sie die SMTP -Sitzung und schließen Sie die Verbindung
SMTPLIB_SERVER.aufhören()
Wenn __name__ == '__main__':
hauptsächlich()
Wenn wir dieses Programm mit einer Google Mail -ID ausführen, werden Sie möglicherweise mit einem solchen Problem konfrontiert:
Google Mail SMTP -Fehler
Abschluss
In dieser Lektion haben wir uns angesehen, wie wir E -Mails mit Pythons senden können SMTPLIB Modul.