Heim Backend-Entwicklung Python-Tutorial Detailliertes Tutorial zur Implementierung von SMTP zum Senden von E-Mails in Python

Detailliertes Tutorial zur Implementierung von SMTP zum Senden von E-Mails in Python

Feb 15, 2017 pm 02:24 PM

Einführung

Als ich die Website durchsuchte, fand ich viele Tutorials zum Senden von E-Mails in Python, aber alle sprachen über viele Prinzipien und starteten dann den Implementierungscode. Als ich versuchte, den angegebenen Code zum Versenden von E-Mails zu verwenden, scheiterte es. Es hat lange gedauert, bis ich den Grund dafür herausgefunden habe. Dies lag an der fehlenden detaillierten Umgebungs-Debugging-Funktion, daher werde ich heute eine detaillierte Schritt-für-Schritt-Anleitung bereitstellen Ich hoffe, dass die Implementierung des gesamten Tutorials für diejenigen hilfreich ist, die immer noch Schwierigkeiten haben, eine Lösung zu finden, aber keine effektive Lösung finden können.

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

Detailliertes Tutorial zur Implementierung von SMTP zum Senden von E-Mails in Python

2. Wenn Sie in der Funktionsleiste über dem Postfach die Option „Einstellungen“ sehen, klicken Sie auf die Option und wählen Sie dann „POP3/SMTP“. aus dem Dropdown-Menü /IMAP“

Detailliertes Tutorial zur Implementierung von SMTP zum Senden von E-Mails in Python

3 Wie im Bild unten gezeigt, müssen die beiden roten Kästchen oben angekreuzt werden , aktivieren Sie sie und sehen Sie dann

im roten Feld unten: SMTP-Server: smtp.163.com

Detailliertes Tutorial zur Implementierung von SMTP zum Senden von E-Mails in Python

Implementieren des Codes

Nach den obigen Einstellungen wurde die Umgebung debuggt und der Code kann Es wird empfohlen, den Pycharm4.5.3-Editor zum Schreiben von Code zu verwenden. Der folgende Code kann sowohl beim Testen der Python2.7- als auch der Python3.4-Version verwendet werden.


#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
Nach dem Login kopieren

Wenn das Senden erfolgreich ist, wird ok zurückgegeben, andernfalls ist die Ausführung nicht erfolgreich, wie unten gezeigt :

Detailliertes Tutorial zur Implementierung von SMTP zum Senden von E-Mails in Python

Horizonte erweitern

Obwohl der Code verwendet werden kann, spielen einige Leute zwangsläufig gerne mit dem Code herum. Defekt, deshalb hier ein paar Wissenspunkte, um Ihre Zweifel auszuräumen.

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:

Detailliertes Tutorial zur Implementierung von SMTP zum Senden von E-Mails in Python

Fehlermeldung Beispiel: File"F:/python/s12/pymail.py",line2

SyntaxError:Non-ASCIIcharacter'xe5'infileF:/python/s12 /pymail.pyonline2,butnoencodingdeclared;seehttp://www.php.cn/

Wenn also die obige Codierungsfehlermeldung angezeigt wird, können Sie

#coding:utf-8 hinzufügen #, um die Kodierung in UTF in der ersten Zeile der Seite zu erzwingen -8

oder

#coding:GBK #Kodierung in GBK erzwingen

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für alle beim Lernen hilfreich ist. Ich hoffe, dass jeder die chinesische PHP-Website unterstützt.

Ausführlichere Tutorials zur Implementierung von SMTP-E-Mails in Python und verwandte Artikel finden Sie auf der chinesischen PHP-Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Apr 01, 2025 pm 05:09 PM

Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Apr 01, 2025 pm 11:15 PM

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Apr 02, 2025 am 07:18 AM

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie kann man vom Browser vermeiden, wenn man überall Fiddler für das Lesen des Menschen in der Mitte verwendet? Wie kann man vom Browser vermeiden, wenn man überall Fiddler für das Lesen des Menschen in der Mitte verwendet? Apr 02, 2025 am 07:15 AM

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Was sind reguläre Ausdrücke? Was sind reguläre Ausdrücke? Mar 20, 2025 pm 06:25 PM

Regelmäßige Ausdrücke sind leistungsstarke Tools für Musteranpassung und Textmanipulation in der Programmierung, wodurch die Effizienz bei der Textverarbeitung in verschiedenen Anwendungen verbessert wird.

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Apr 01, 2025 pm 10:51 PM

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Was sind einige beliebte Python -Bibliotheken und ihre Verwendung? Was sind einige beliebte Python -Bibliotheken und ihre Verwendung? Mar 21, 2025 pm 06:46 PM

In dem Artikel werden beliebte Python-Bibliotheken wie Numpy, Pandas, Matplotlib, Scikit-Learn, TensorFlow, Django, Flask und Anfragen erörtert, die ihre Verwendung in wissenschaftlichen Computing, Datenanalyse, Visualisierung, maschinellem Lernen, Webentwicklung und h beschreiben

Wie erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Wie erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Apr 01, 2025 pm 11:18 PM

Wie erstellt in Python ein Objekt dynamisch über eine Zeichenfolge und ruft seine Methoden auf? Dies ist eine häufige Programmieranforderung, insbesondere wenn sie konfiguriert oder ausgeführt werden muss ...

See all articles