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

So versenden Sie E-Mails mit Python

WBOY
WBOYnach vorne
2023-04-20 09:16:064346Durchsuche

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(邮箱账号, 授权码)
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(文字对象)
2.3 Versenden von E-Mails

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

连接对象.sendmail(发件⼈, 收件人, 邮件对象.as_string())
连接对象.quit()
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()

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⽂本对象)

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()

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(⽂件对象)

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()

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen