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
Patricia ArquetteOriginal
2024-11-17 13:40:02398Durchsuche

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()

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

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.'

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)

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.'

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')

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')

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()

Wir melden uns dann mit dieser Zeile beim Mailserver an:

server.login(email,password)

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

fromaddr = 'Your Gmail address.'
toaddrs  = 'Destination address.'

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()

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!

Stellungnahme:
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