Heim > Backend-Entwicklung > Python-Tutorial > So versenden Sie E-Mails mit Python

So versenden Sie E-Mails mit Python

WBOY
Freigeben: 2023-04-20 09:16:06
nach vorne
4349 Leute haben es durchsucht

1. Bereiten Sie das E-Mail-Konto vor, das zum Senden von E-Mails verwendet wird.

Bereiten Sie das E-Mail-Konto und den E-Mail-Anmeldeautorisierungscode vor. Die Methoden zum Erhalten von Autorisierungscodes sind für verschiedene Arten von Postfächern ähnlich. Hier nehmen wir das QQ-Postfach als Beispiel, um die Schritte zum Erhalten von Autorisierungscodes zu demonstrieren:

Schritt 1: Melden Sie sich über die Webseite beim QQ-Postfach an und finden Sie die Hilfe Zentrum

So versenden Sie E-Mails mit Python

Schritt 2: In der Hilfe Wählen Sie die zweite Frage in „Client-Einstellungen“ in der Mitte aus:

So versenden Sie E-Mails mit Python

und befolgen Sie dann die entsprechenden Anforderungen, um den Autorisierungscode zu erhalten und zu speichern.

2. Grundlegende Schritte zum Versenden von E-Mails

Die Schritte zum Versenden von E-Mails per Code sind grundsätzlich dieselben wie zum manuellen Versenden von E-Mails: Melden Sie sich bei Ihrem Postfach an –> E-Mail-Inhalt vorbereiten –>

2.1 Melden Sie sich bei Ihrem E-Mail-Konto an
import smtplib
1. 连接邮箱服务器
连接对象 = smtplib.SMTP_SSL(服务器地址, 邮箱服务端口)
- 服务器地址:smtp.163.com(163邮箱)、smtp.qq.com(qq邮箱) - 邮箱服务端口:465或者25
2. 登录邮箱 连接对象.login(邮箱账号, 授权码)
Nach dem Login kopieren
2.2 Daten vorbereiten

Daten beziehen sich auf den Inhalt, der gesendet werden muss. Die Erstellung von E-Mail-Inhalten erfordert eine weitere Bibliothek, E-Mail, die zum Erstellen von E-Mail-Betreffs und verschiedenen Formen von E-Mail-Inhalten (einschließlich Textinhalt, Bildinhalt, HTML-Inhalt, Anhänge) usw. verwendet werden kann. Lassen Sie uns kurz über E-Mail-Betreff und Textinhalt sprechen und andere Formen von Inhalten werden später im Abschnitt zum E-Mail-Inhalt ausführlich erläutert.

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
1. 创建邮件对象
邮件对象 = MIMEMultipart()
2. 设置邮件主题
主题对象 = Header(邮件标题, 编码方式).encode()
邮件对象['Subject'] = 主题对象
3.设置邮件发送者
邮件对象['From'] = '用户名 '
4.设置邮件接受者
邮件对象['To'] = '收件⼈1;收件⼈2;收件人3...'
5. 添加文字内容
文字内容对象 = MIMEText(内容, 类型, 编码方式)
- 内容:就是文字字符串
- 类型:plain(简单的⽂字内容)、html(超文本) 邮件对象.attach(文字对象)
Nach dem Login kopieren
2.3 Versenden von E-Mails

3. Beispiele für das Versenden verschiedener Arten von E-Mails

连接对象.sendmail(发件⼈, 收件人, 邮件对象.as_string())
连接对象.quit()
Nach dem Login kopieren
3.1 E-Mails mit gewöhnlichem Textinhalt

Der E-Mail-Text dieser Art von E-Mail enthält nur normale Textinformationen, keinen Hypertext, keine Bilder. und keine Anhänge:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
# 1. 连接邮箱服务器
con = smtplib.SMTP_SSL('smtp.163.com', 465)
# 2. 登录邮箱
con.login('XXXX@163.com', 'XXXXX')
# 2. 准备数据
# 创建邮件对象
msg = MIMEMultipart()
# 设置邮件主题
subject = Header('找回密码', 'utf-8').encode() msg['Subject'] = subject
# 设置邮件发送者
msg['From'] = 'XXXX@163.com'
# 设置邮件接受者
msg['To'] = '726550822@qq.com'
# 添加⽂文字内容
text = MIMEText('忘记密码需要找回密码', 'plain', 'utf-8')
msg.attach(text)
# 3.发送邮件
con.sendmail('xxxx@163.com', '726550822@qq.com', msg.as_string())
con.quit()
Nach dem Login kopieren

So versenden Sie E-Mails mit Python

3.2 Hypertext-Dateiinhalt

Eine Art E-Mail mit umfangreicherem und interessanterem Text. Die E-Mails, die wir von den wichtigsten Plattformen im Leben erhalten, sind alle solche E-Mails. Das Kerncodeformat ist wie folgt.

from email.mime.text import MIMEText
html⽂本对象 = MIMEText(html内容字符串, 'html', 编码方式) 邮件对象.attach(html⽂本对象)
Nach dem Login kopieren

Spezifischer Code:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
con = smtplib.SMTP_SSL('smtp.163.com', 465)
con.login('xxxx@163.com', 'xxxxxx')
msg = MIMEMultipart()
subject = Header('找回密码', 'utf-8').encode()
msg['Subject'] = subject
msg['From'] = 'xxxx@163.com'
msg['To'] = '726550822@qq.com'
# 添加html内容
content = """我是正⽂中的标题邮件正文描述性文字1邮件正⽂描述性文字2 百度图片百度⼀下
"""
html = MIMEText(content, 'html', 'utf-8')
msg.attach(html)
# 发送邮件
con.sendmail('xxxx@163.com', '726550822@qq.com', msg.as_string())
con.quit()
Nach dem Login kopieren

So versenden Sie E-Mails mit Python

3.3 Anhänge senden

Zusätzlich zum Haupttextinhalt müssen manchmal verschiedene Dateien separat als Anhänge gesendet werden. Der Kerncode zum Senden von Anhängen lautet wie folgt:

from email.mime.text import MIMEText
⽂文件对象 = MIMEText(⽂件二进制数据, 'base64', 编码⽅式)
文件对象["Content-Disposition"] = 'attachment; filename="⽂件名"'
邮件对象.attach(⽂件对象)
Nach dem Login kopieren

Spezifischer Code:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.header import Header
from email.mime.message import MIMEMessage from copy import deepcopy
con = smtplib.SMTP_SSL('smtp.163.com', 465)
con.login('xxxx@163.com', 'xxxxxx')
msg = MIMEMultipart()
subject = Header('⽂文件附件发送', 'utf-8').encode() msg['Subject'] = subject
msg['From'] = 'xxxx@163.com'
msg['To'] = '726550822@qq.com'
# 添加⽂文件附件
file1 = MIMEText(open('files/test.txt', 'rb').read(), 'base64', 'utf-8')
file1["Content-Disposition"] = 'attachment; filename="test.txt"'
msg.attach(file1)
file2 = MIMEText(open('files/pyecharts的使⽤用.pdf', 'rb').read(), 'base64', 'utf-8')
file2["Content-Disposition"] = 'attachment; filename="test.pdf"'
msg.attach(file2)
# 发送邮件
con.sendmail('xxxx@163.com', '726550822@qq.com', msg.as_string())
con.quit()
Nach dem Login kopieren

So versenden Sie E-Mails mit Python

Das obige ist der detaillierte Inhalt vonSo versenden Sie E-Mails mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage