Heim > Backend-Entwicklung > Python-Tutorial > So senden Sie E-Mails in Python mit der kostenlosen SMTP-Mailserver-API von Gmail

So senden Sie E-Mails in Python mit der kostenlosen SMTP-Mailserver-API von Gmail

Patricia Arquette
Freigeben: 2024-11-17 13:40:02
Original
346 Leute haben es durchsucht

Dies ist die einfachste Möglichkeit, E-Mails mit Python zu versenden, indem Sie nur zwei Bibliotheken, smtplib und email, verwenden.

In diesem Beispiel verwenden wir die kostenlose RESTful-API von Gmail.

Hier ist der Code

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

message = MIMEMultipart()
message["To"] = 'To line here.'
message["From"] = 'From line here.'
message["Subject"] = 'Subject line here.'

title = '<b> Title line here. </b>'
messageText = MIMEText('''Message body goes here.''','html')
message.attach(messageText)

email = 'Your Gmail address here.'
password = 'Your app password here.'

server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo('Gmail')
server.starttls()
server.login(email,password)
fromaddr = 'From line here.'
toaddrs  = 'Address you send to.'
server.sendmail(fromaddr,toaddrs,message.as_string())

server.quit()
Nach dem Login kopieren

Wie funktioniert der Code?

Zuerst importieren wir smtplib, dann MIMEMultipart und MIMEText aus email.mime.multipart bzw. email.mime.text:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
Nach dem Login kopieren

Wir rufen dann MIMEMultiPart() auf und instanziieren es in der Variablen Message. Dann geben wir jeder Variablen einen String-Wert, nämlich „Nachricht“, „An“, „Von“ und „Betreff“. Dieser sollte wie folgt aussehen:

Message = MIMEMultipart()
Message["To"] = 'To line here.'
Message["From"] = 'From line here.'
Message["Subject"] = 'Subject line here.'
Nach dem Login kopieren

Wir geben unserer E-Mail auch einen Titel über die Titelvariable und fügen eine Nachricht über MIMEText() hinzu, instanziieren sie in der Variablen messageText und hängen schließlich unsere E-Mail-Nachricht mit der Funktion attachment() an unsere Hauptvariable Message an. es sollte so aussehen:

title = '<b> Title line here. </b>'
messageText = MIMEText('''Message body goes here.''','html')
Message.attach(messageText)
Nach dem Login kopieren

Fügen wir unsere Gmail-Adresse und unser App-Passwort hinzu. Klicken Sie hier auf den Link, wenn Sie nicht wissen, wie Sie eines erhalten:

email = 'Your Gmail address here.'
password = 'Your App password here.'
Nach dem Login kopieren

Dann müssen wir uns mit dem SMTP-Server von Gmail verbinden. Dazu verwenden wir die smtplib-Bibliothek und wir benötigen zwei Variablen, nämlich den Server, mit dem wir eine Verbindung herstellen möchten, und den Port, nämlich smtp.gmail.com bzw. 587.

Mit der smtplib-Bibliothek rufen wir die SMTP-Funktion auf und fügen die Server- und Portvariablen als Argumente hinzu. Es sollte so aussehen:

smtplib.SMTP('smtp.gmail.com:587') (vergessen Sie nicht das : dazwischen)

Wir instanziieren es dann auf dem Variablenserver:

server = smtplib.SMTP('smtp.gmail.com:587')
Nach dem Login kopieren

Wir fügen dann eine ehlo-Anweisung mit server.ehlo('Gmail') hinzu. Dies sollte Ihr Domänenname sein. Dies ist nützlich, wenn Sie eine E-Mail an einen anderen Mailserver senden, der ESMTP unterstützt. Halten wir es einfach und geben Sie einfach Gmail ein:

server.ehlo('Gmail')
Nach dem Login kopieren

Lassen Sie uns auch das TLS-Protokoll mit server.starttls() starten. Dadurch wird dem Mailserver mitgeteilt, dass wir unsere E-Mails über eine sichere Verbindung senden möchten:

server.starttls()
Nach dem Login kopieren

Wir melden uns dann mit dieser Zeile beim Mailserver an:

server.login(email,password)
Nach dem Login kopieren

Fügen wir eine Absender- und eine An-Adresse(n) hinzu, indem wir fromaddr bzw. toaddrs verwenden:

fromaddr = 'Your Gmail address.'
toaddrs  = 'Destination address.'
Nach dem Login kopieren

Zuletzt versenden wir unsere E-Mail mit server.sendmail(fromaddr,toaddrs,message.as_string()) und schließen unsere Verbindung zum Mailserver mit server.quit():

server.sendmail(fromaddr,toaddrs,message.as_string())
server.quit()
Nach dem Login kopieren

Speichern Sie das in einer Datei namens send_email.py, öffnen Sie ein Terminal, wenn Sie Linux verwenden, oder eine Eingabeaufforderung, wenn Sie Windows verwenden, und starten Sie es mit Python send_email.py. Sie sollten Folgendes sehen:

How to Send Emails in Python Using Gmail’s Free SMTP Mail Server API

Wenn nichts passiert, dann ist es eine gute Nachricht, dass es funktioniert!

Sie sollten eine E-Mail an Ihre Ziel-E-Mail(s) erhalten haben. Folgendes habe ich erhalten:

How to Send Emails in Python Using Gmail’s Free SMTP Mail Server API

Das Versenden von E-Mails mit Python und dem kostenlosen SMTP-Server von Gmail ist die einfachste Möglichkeit, mit dem Versenden von E-Mails innerhalb Ihres Python-Codes zu beginnen. Genau das habe ich getan, als ich mein erstes Online-Geschäft überhaupt aufgebaut habe. Mehr darüber können Sie hier lesen.

Das obige ist der detaillierte Inhalt vonSo senden Sie E-Mails in Python mit der kostenlosen SMTP-Mailserver-API von Gmail. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage