Heim >Backend-Entwicklung >Python-Tutorial >Wie sendet Python? Einführung in drei Möglichkeiten zum Senden von E-Mails in Python
Der Inhalt dieses Artikels handelt davon, wie PHP SwooleTaskWorker verwendet, um den asynchronen Betrieb von MySQL (Code) zu implementieren. Ich hoffe, dass er für Sie hilfreich ist.
Es gibt drei Möglichkeiten, E-Mails in Python zu senden, einschließlich der Anmeldung beim Mailserver, der Verwendung des SMTP-Dienstes und des Aufrufs des sendmail-Befehls.
Das Senden von E-Mails in Python ist relativ einfach Zum Senden können Sie auch den Befehl sendmail verwenden. Sie können auch lokale oder Remote-SMTP-Dienste verwenden, um E-Mails zu senden. Dies ist einfacher umzusetzen. In diesem Mipu-Blog werden zunächst einige der einfachsten Möglichkeiten zum Versenden von E-Mails vorgestellt und diese aufgezeichnet. HTML-E-Mails, Anhänge usw. werden ebenfalls unterstützt.
1. Melden Sie sich beim Mailserver an
Melden Sie sich über SMTP beim Drittanbieter-SMTP-Postfach an, um E-Mails zu senden, die die Ports 25 und 465 unterstützen
vim python_email_1.py
#!/usr/bin/env python # -*- coding:utf-8 -*- # # author: mimvp.com # 2015.10.05 import smtplib from email.mime.text import MIMEText smtpHost = 'smtp.exmail.qq.com' sender = 'robot@mimvp.com' password = "mimvp-password" receiver = 'yanggang@mimvp.com' content = 'hello mimvp.com' msg = MIMEText(content) msg['Subject'] = 'email-subject' msg['From'] = sender msg['To'] = receiver ## smtp port 25 smtpServer = smtplib.SMTP(smtpHost, 25) # SMTP smtpServer.login(sender, password) smtpServer.sendmail(sender, receiver, msg.as_string()) smtpServer.quit() print 'send success by port 25' ## smtp ssl port 465 smtpServer = smtplib.SMTP_SSL(smtpHost, 465) # SMTP_SSL smtpServer.login(sender, password) smtpServer.sendmail(sender, receiver, msg.as_string()) smtpServer.quit() print 'send success by port 465'
Führen Sie den Befehl aus:
$ python python_email_1.py send success by port 25 send success by port 465
Senden Sie das Ergebnis und Sie erhalten zwei E-Mails, wie unten gezeigt:
2. Verwenden Sie den SMTP-Dienst
Der Test ist fehlgeschlagen, überspringen Sie ihn oder hinterlassen Sie eine Nachricht, um ihn zu korrigieren
#!/usr/bin/env python # -*- coding:utf-8 -*- # # author: mimvp.com # 2015.10.05 import smtplib from email.mime.text import MIMEText import subprocess smtpHost = 'smtp.exmail.qq.com' sender = 'robot@mimvp.com' password = "mimvp-password" receiver = 'yanggang@mimvp.com' content = 'hello mimvp.com' msg = MIMEText(content) if __name__ == "__main__": p = subprocess.Popen(['/usr/sbin/sendmail', '-t'], stdout=subprocess.PIPE) print(str(p.communicate())) p_res = str(p.communicate()[0]) msg = MIMEText(p_res) msg["From"] = sender msg["To"] = receiver msg["Subject"] = "hello mimvp.com" s = smtplib.SMTP(smtpHost) s.login(sender, password) s.sendmail(sender, receiver, msg.as_string()) s.quit() print 'send success'
3. Rufen Sie den sendmail-Befehl auf
Rufen Sie den nativen Linux-Sendmail-Dienst auf, um E-Mails zu senden. Es ist nicht erforderlich, den Sendmail-Hintergrundprozess zu starten Geben Sie den Absender ein, um sich anzumelden. Der E-Mail-Absender kann ein beliebiger Name sein, es gibt keine Einschränkungen.
Besonderer Hinweis: Der sendmail-Befehl verwendet standardmäßig Port 25 zum Senden von E-Mails. Da Alibaba Cloud, Tencent Cloud usw. Port 25 blockiert haben, muss dieses Beispiel auf einem Computer mit aktiviertem Port 25 getestet werden
vim python_email_3.py
#!/usr/bin/env python # -*- coding:utf-8 -*- # # author: mimvp.com # 2015.10.05 from email.mime.text import MIMEText from subprocess import Popen, PIPE import commands import sys reload(sys) sys.setdefaultencoding('utf-8') def send_mail(sender, recevier, subject, html_content): msg = MIMEText(html_content, 'html', 'utf-8') msg["From"] = sender msg["To"] = recevier msg["Subject"] = subject p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE) p.communicate(msg.as_string()) sender = 'robot@mimvp.com' recevier = 'yanggang@mimvp.com' subject = 'sendmail-subject' html_content = 'hello mimvp.com' send_mail(sender, recevier, subject, html_content)
Befehl ausführen:
python python_email_3.py
Ergebnis erhalten:
Das obige ist der detaillierte Inhalt vonWie sendet Python? Einführung in drei Möglichkeiten zum Senden von E-Mails in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!