Hallo allerseits, lange nicht gesehen. Nach und nach werde ich anfangen zu posten.
~ Senden von E-Mails mit Google Mail mit Python ~
Es ist wirklich einfach.
Wenn der obige Durchfluss zerlegt wird, sind drei Schritte erforderlich.
create_msg.py
from email.mime.text import MIMEText
def create_msg(from_email, to_email):
#Der Inhalt der E-Mail
subject = "Der heutige Todo"
message = '''
<ul>
<li>Über meinen Text</li>
<li>Über SMTP</li>
<li>Web-Technologie-Buch</li>
<li>Über das MVC-Modell</li>
</ul>
'''
#Erklärung 1
msg = MIMEText(message, "html")
msg["Subject"] = subject
msg["To"] = to_email
msg["From"] = from_email
return msg
*class email.mime.text.MIMEText(_text, _subtype='plain', _charset=None, , policy=compat32) Dies ist das Argument der MINEText-Klasse. Dieses Mal werden "_text" und "_subtype" festgelegt. "_text" wird auf die Nachricht gesetzt, die Sie dieses Mal senden möchten, und da Sie sie im HTML-Format anzeigen möchten, wird "html" an "_subtype" übergeben.
Danach werden Betreff, Ziel und Quelle an diese MIMEText-Klasse übergeben. Damit ist die Nachrichtenzusammensetzung zum Senden abgeschlossen.
email.mine: Mail- und MIME-Objekte von Grund auf neu erstellen
gmail.py
#Erklärung 1
gmail = smtplib.SMTP("smtp.gmail.com", 587)
#Zur Bestätigung, wenn die Authentifizierung fehlschlägt
gmail.set_debuglevel(True)
gmail.ehlo()
if gmail.has_extn('STARTTLS'):
#Wechseln Sie zur verschlüsselten Kommunikation
gmail.starttls()
gmail.ehlo()
#Erklärung 2
gmail.login(from_email, from_password)
#Eine E-Mail senden
gmail.send_message(msg)
Erstens SMTP class smtplib.SMTP(host='', port=0, local_hostname=None, [timeout, ]source_address=None) Geschrieben in. SMTP Protocol Client
Ich werde diesmal also Google Mail verwenden host='smtp.gmail.com' port=587 Es wurde gemacht. In der folgenden Google-Hilfe erfahren Sie, woher diese stammen. Google-Hilfe
Dann melden Sie sich an. Sie können sich mit gmail.login anmelden (from_email, from_password). from_email Geben Sie Ihre E-Mail-Adresse ein. Geben Sie für from_password Ihr Google Mail-Passwort ein. Hier gibt es eine Falle.
Standardmäßig kann Google Mail keine E-Mails von Ihrem lokalen Python senden, da Google Mail den DNS der Quell-IP-Adresse umkehrt und die Verbindung ablehnt, wenn die Domain nicht gefunden wird. Aus diesem Grund ist es erforderlich, ** "Zugriff auf das Konto von weniger sicheren Apps aus zulassen" ** in den Kontoeinstellungen im Voraus zu aktivieren. Dies stellt ein Sicherheitsrisiko dar. Wir empfehlen daher, ein separates Lernkonto zu erstellen.
Gehen Sie in Ihrem Google-Konto (https://myaccount.google.com/) zu "Sicherheit", um den Zugriff auf weniger sichere Apps zu ermöglichen.
Außerdem variieren Host- und Portnummern je nach Anbieter.
Anbieter | SMTP-Servername |
---|---|
Gmail | smtp.gmail.com |
Outlook.com/Hotmail.com | smtp-mail.outllok.com |
Yahoo Mail | smtp.mail.yahoo.com |
AT&T | smtp.mail.att.net(port = 465) |
Comcast | smtp.comcast.net |
Verizon | smtp.verizon.net(port = 465) |
main.py
from email.mime.text import MIMEText
import smtplib
def send_email(email):
#Ihr Konto
from_email="Ihre Google Mail-Adresse"
from_password="Passwort zum Anmelden bei Google Mail"
#Ziel
to_email = email
#Verfassen Sie eine Nachricht
msg = create_msg(from_email, to_email)
gmail = smtplib.SMTP("smtp.gmail.com", 587)
#Zur Bestätigung, wenn die Authentifizierung fehlschlägt
gmail.set_debuglevel(True)
gmail.ehlo()
if gmail.has_extn('STARTTLS'):
#Wechseln Sie zur verschlüsselten Kommunikation
gmail.starttls()
gmail.ehlo()
#Erklärung 2
gmail.login(from_email, from_password)
#Eine E-Mail senden
gmail.send_message(msg)
def create_msg(from_email, to_email):
#Der Inhalt der E-Mail
subject = "Der heutige Todo"
message = '''
<ul>
<li>Über meinen Text</li>
<li>Über SMTP</li>
<li>Web-Technologie-Buch</li>
<li>Über das MVC-Modell</li>
</ul>
'''
#Erklärung 1
msg = MIMEText(message, "html")
msg["Subject"] = subject
msg["To"] = to_email
msg["From"] = from_email
return msg
if __name__ == '__main__':
to_addr = 'E-Mail-Adresse der Person, die Sie senden möchten'
send_email(to_addr)
Fehler beim Versuch, E-Mails aus dem Programm mit Google Mail zu senden email.mine: Mail- und MIME-Objekte von Grund auf neu erstellen SMTP Protocol Client Google-Hilfe