Heim > Artikel > Backend-Entwicklung > Verwenden Sie Python zum Senden und Empfangen von E-Mail-Beispielcode
Vor dem College habe ich E-Mail im Grunde nicht verwendet, daher habe ich im Grunde nicht gespürt, dass sie existiert, und wusste nicht, wie sie verwendet wird. Nach dem College erfuhr ich jedoch mehr und mehr Menschen, meines Wissens nach wird es immer weiter verbreitet und E-Mail ist zu einem sehr wichtigen Kommunikationsmittel geworden. Bei einigen Universitätskursen muss eine E-Mail an Lehrer gesendet werden, bei der Registrierung für eine Website ist eine E-Mail erforderlich, und auch bei der Suche nach einem Job ist eine E-Mail erforderlich erfordert eine E-Mail. Was ist also das Prinzip einer E-Mail? Einfaches E-Mail-Übertragungsprotokoll. Dabei handelt es sich um eine Reihe von Protokollen zur Übertragung von E-Mails von der Quelladresse zur Zieladresse. Regeln, die die Weiterleitung von Briefen regeln. Das SMTP-Protokoll gehört zur Protokollsuite
TCP/IPSMTP-Modul in Python
Grundlegende Schritte zur Verwendung von SMTP
Anmelden
Serviceanfrage senden
Abmelden
import smtplib from email import encoders from email.header import Header from email.mime.text import MIMEText from email.utils import parseaddr, formataddr def send_email(from_addr, to_addr, subject, password): msg = MIMEText("邮件正文",'html','utf-8') msg['From'] = u'<%s>' % from_addr msg['To'] = u'<%s>' % to_addr msg['Subject'] = subject smtp = smtplib.SMTP_SSL('smtp.163.com', 465) smtp.set_debuglevel(1) smtp.ehlo("smtp.163.com") smtp.login(from_addr, password) smtp.sendmail(from_addr, [to_addr], msg.as_string()) if name == "main": # 这里的密码是开启smtp服务时输入的客户端登录授权码,并不是邮箱密码 # 现在很多邮箱都需要先开启smtp才能这样发送邮件 send_email(u"from_addr",u"to_addr",u"主题",u"password")
POP3 und I
MAP邮箱 | SMTP服务器 | SSL协议端口 | 非SSL协议端口 |
---|---|---|---|
163 | smtp.163.com | 465或者994 | 25 |
smtp.11.com | 465或587 | 25 |
Später erschien das IMAP-Protokoll (Interactive Mail Access Protocol), das interaktive E-Mail-Zugriffsprotokoll. Der Unterschied zu POP3 besteht darin, dass die im E-Mail-Client empfangenen E-Mails nach der Aktivierung weiterhin gespeichert werden Gleichzeitig werden Vorgänge auf dem Client an den Server zurückgemeldet, z. B. das Löschen von E-Mails, das Markieren als gelesen usw., und die E-Mails auf dem Server werden ebenfalls entsprechende Aktionen ausführen. POP3 verwendenPythons Poplib-Modul unterstützt POP3, grundlegende Schritte:
Mit dem Server verbinden
Anmelden
Serviceanfrage stellen
Beenden
Gemeinsame Methoden für Poplib:
Methode | Beschreibung |
---|---|
POP3(server) | POP3 instanziierenObjekt, Server Ist die Adresse des Pop-Servers |
Benutzer(Benutzername) | Senden Sie den Benutzernamen an den Server und warten Sie, bis der Server Informationen zurückgibt tr> |
pass_(password) | Passwort |
stat () | Gibt den Status |
list([msgnum]) | Erweiterung von stat(), Rückgabe eines 3-Tupel-Vorfahren (Rückgabeinformationen, Nachrichtenliste, Nachrichtengröße). Wenn msgnum angegeben ist, werden nur die Daten der angegebenen Nachricht zurückgegeben |
retr(msgnum) | Details abrufen msgnum, auf Lesen gesetzt, gibt ein 3-Tupel zurück (Rückgabeinformationen, alle Inhalte der Nachricht msgnum, die Anzahl der Bytes der Nachricht). Es werden nur die Daten der angegebenen Nachricht zurückgegeben |
dele(msgnum) | Die angegebene Nachricht zum Löschen markieren |
quit() | Abmelden, Änderungen speichern, Postfach entsperren, Verbindung beenden, beenden |
Beispiel
方法 | 描述 |
---|---|
POP3(server) | 实例化POP3对象,server是pop服务器地址 |
user(username) | 发送用户名到服务器,等待服务器返回信息 |
pass_(password) | 密码 |
stat() | 返回邮箱的状态,返回2元祖(消息的数量,消息的总字节) |
list([msgnum]) | stat()的扩展,返回一个3元祖(返回信息, 消息列表, 消息的大小),如果指定msgnum,就只返回指定消息的数据 |
retr(msgnum) | 获取详细msgnum,设置为已读,返回3元组(返回信息, 消息msgnum的所以内容, 消息的字节数),如果指定msgnum,就只返回指定消息的数据 |
dele(msgnum) | 将指定消息标记为删除 |
quit() | 登出,保存修改,解锁邮箱,结束连接,退出 |
Gemeinsame Methoden:
from poplib import POP3 p = POP3('pop.163.com') p.user('xxxxxxx@163.com') p.pass_('xxxxxxxx') p.stat() ... p.quit()
Das obige ist der detaillierte Inhalt vonVerwenden Sie Python zum Senden und Empfangen von E-Mail-Beispielcode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!