Dieser Artikel stellt hauptsächlich ein detailliertes Tutorial zur Implementierung des SMTP-E-Mail-Versands in Python vor, mit dem angehängten SMTP-E-Mail-Versandcode. Interessierte Freunde können sich auf
Einführung
Tutorials zum Versenden von E-Mails in Python Ich habe beim Durchsuchen der Website viele davon durchsucht, aber sie alle sprachen über viele Prinzipien und führten dann den Implementierungscode ein. Als ich den angegebenen Code zum Versenden von E-Mails testete, war dies erfolglos Es hat lange gedauert, bis ich den Grund dafür gefunden habe, dass es an detailliertem Umgebungs-Debugging mangelt. Deshalb werde ich heute ein detailliertes Tutorial bereitstellen, das Schritt für Schritt vom Umgebungs-Debugging bis zur Code-Implementierung reicht Ich habe immer noch Schwierigkeiten, Lösungen zu finden. Ich konnte von niemandem Hilfe bekommen, der das Problem effektiv lösen könnte.SMTP-Protokoll
Verstehen Sie zunächst SMTP (Simple Mail Transfer Protocol). Der Mail-Transfer-Agent verwendet das SMTP-Protokoll, um E-Mails an den Mailserver des Empfängers zu senden. Das SMTP-Protokoll kann nur zum Senden von E-Mails, nicht zum Empfangen von E-Mails verwendet werden, und die meisten E-Mail-Versandserver verwenden das SMTP-Protokoll. Die Standard-TCP-Portnummer für das SMTP-Protokoll ist 25.Umgebungs-Debugging
Wie oben erwähnt, wird die E-Mail über das SMTP-Protokoll gesendet. Sie müssen daher zunächst prüfen, ob das SMTP-Protokoll im Postfach Ihres Absenders aktiviert ist Wenn nicht, ist es nicht erforderlich, das 163.com-Postfach als Absender-Mailbox zu verwenden.1. Melden Sie sich zunächst beim 163.com-Postfach (NetEase-Postfach) an, wie unten gezeigt
2. Wenn Sie in der Funktionsleiste über dem Postfach eine Option „Einstellungen“ sehen, klicken Sie auf die Option und wählen Sie dann aus. Abwärtsmenü 🎜>"POP3/SMTP/IMAP"
3. Wie im Bild unten gezeigt , die beiden roten Kästchen oben. Wenn es nicht aktiviert ist, können Sie es aktivieren. Dann sehen Sie, dass das rote Kästchen unten ist:
SMTP-Server :smtp.163.com
Implementierungscode
Nach den oben genannten Einstellungen wird die Umgebung debuggt. Der folgende Code kann zum Schreiben des Codes pycharm4.5.3 verwendet werden und Python3.4-Versionstests.
Wenn das Senden erfolgreich ist, wird ok zurückgegeben, andernfalls ist die Ausführung nicht erfolgreich, wie unten gezeigt:
#coding:utf-8 #强制使用utf-8编码格式 import smtplib #加载smtplib模块 from email.mime.text import MIMEText from email.utils import formataddr my_sender='发件人邮箱账号' #发件人邮箱账号,为了后面易于维护,所以写成了变量 my_user='收件人邮箱账号' #收件人邮箱账号,为了后面易于维护,所以写成了变量 def mail(): ret=True try: msg=MIMEText('填写邮件内容','plain','utf-8') msg['From']=formataddr(["发件人邮箱昵称",my_sender]) #括号里的对应发件人邮箱昵称、发件人邮箱账号 msg['To']=formataddr(["收件人邮箱昵称",my_user]) #括号里的对应收件人邮箱昵称、收件人邮箱账号 msg['Subject']="主题" #邮件的主题,也可以说是标题 server=smtplib.SMTP("smtp.xxx.com",25) #发件人邮箱中的SMTP服务器,端口是25 server.login(my_sender,"发件人邮箱密码") #括号中对应的是发件人邮箱账号、邮箱密码 server.sendmail(my_sender,[my_user,],msg.as_string()) #括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件 server.quit() #这句是关闭连接的意思 except Exception: #如果try中的语句没有执行,则会执行下面的ret=False ret=False return ret ret=mail() if ret: print("ok") #如果发送成功则会返回ok,稍等20秒左右就可以收到邮件 else: print("filed") #如果发送失败则会返回filed
1. Ich sehe, dass in der ersten Zeile des Codes oben kein „#coding:utf-8“ steht. Ich glaube, dass viele Leute, die diesen Code lesen, dieser Zeile sowieso nicht viel Aufmerksamkeit schenken , es hat nichts mit der Code-Implementierung zu tun. Lassen Sie mich Ihnen sagen, dass diese Codezeile in Python am besten ist, weil sie obligatorisch ist Die Python2-Version erkennt standardmäßig die ASCII-Codierung. Wenn also chinesische Zeichen in Python angezeigt werden, wird sie nicht erkannt. Die angezeigte Fehlermeldung lautet wie folgt:
Fehlermeldung
Beispiel: File"F:/python/s12/pymail.py",line2SyntaxError:Non-ASCIIcharacter'xe5'infileF:/python/s12 /pymail.pyonline2,butnoencodingdeclared; seehttp://www.python.org/peps/pep-0263.htmlford
etailsAlso wenn das oben genannte Wenn eine Codierungsfehlermeldung angezeigt wird, können Sie diese in die erste Zeile der Seite einfügen #coding:utf-8
#Codierung auf utf-8 erzwingen oder#coding:GBK
#Force Encoded as GBK[Verwandte Empfehlungen]1.
Detaillierte Einführung in Python mit SMTP E-Mails sendenPython-Code-Zusammenfassung zum Senden von E-Mails über SMTP
3.c# ruft qq Mailbox SMTP auf, um E-Mails mit geändertem Versionscode zu senden
4. Python verwendet SMTP zum Versenden von E-Mails
Detaillierte Erklärung von Python SMTP-E-Mail-Modul
7. Python smtplib-Modul sendet SSL/TLS-sicheres E-Mail-BeispielDas obige ist der detaillierte Inhalt vonTeilen Sie ein Beispiel für die Implementierung von SMTP zum Senden von E-Mails mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!