第11章:python自动化——SMTP库实现邮件发送

本文详细介绍了如何使用Python的SMTPLIB库发送不同类型的邮件,包括文本、HTML格式和包含附件的邮件,并讲解了配置文件的管理和路径处理方法,特别提到了QQ邮箱的SMTP服务配置和授权码的获取。同时,文章还展示了如何封装函数以提高代码复用性和管理配置文件的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、SMTPLIB服务配置

二、各类邮件发送实现

1.发送文本格式的内容 

2.发送HTML格式的内容

3.发送附件格式的内容

三、配置项设置

1.配置文件的定义和使用

2.解决配置文件的路径问题

3.通过pathlib库解决配置文件的路径问题

四、总结


一、SMTPLIB服务配置

本章以QQ邮箱为例,其他类型的邮箱都可以参照QQ邮箱的模式,但是设置上需要自行网上查询一下即可。

开启流程:

进入邮箱——进入设置——找到第三方服务——将IMAP/SMTP服务开启(需要验证码进行验证)——生成授权码(开启服务后默认会生成授权码)

开启服务,获得授权码之后,才可以通过代码的形式来进行邮件的发送

二、各类邮件发送实现

SMTPLIB是在python中实现邮件的编码形态发送的库。可以通过代码直接连接到指定邮箱,进行各类邮件的发送。SMTPLIB也是官方自带库,直接导入使用即可。

1.发送文本格式的内容 

import smtplib
from email.header import Header
from email.mime.text import MIMEText

# 1. 配置邮箱信息
sender = '2314419713@qq.com'  # 发件人
receiver = '2314419713@qq.com'  # 收件人
pass_code = 'vtukpynskaeaeaff'  # 授权码:是发件人的授权码,也就是你之前开启SMTP服务时返回的字符串

# 2. 邮箱服务连接
conn = smtplib.SMTP('smtp.qq.com', 25)  # qq邮箱的smtp服务地址:smtp.qq.com,默认端口:25

# 3. 邮件内容的定义
text = '这是一封普通的文本邮件'  # 邮件正文,信
content = MIMEText(text, 'plain', 'utf-8')  # 实现邮件发送的内容定义,信封

# 4. 定义收件人与发件人,邮件主题等相关信息
content['From'] = sender  # 发件人
content['To'] = receiver  # 收件人
# 添加邮件的主体
email_theme = '这是这份信的主题'
content['Subject'] = Header(email_theme, 'utf-8')  # 实现邮件主题的添加。

# 5. 发送邮件
conn.login(sender, pass_code)  # 登录smtp服务,是用账号与授权码,而不是账号与密码。
conn.sendmail(sender, receiver, content.as_string())  # 邮件发送

# 6.关闭smtp服务
conn.close()

发送效果如下:

2.发送HTML格式的内容

发送html格式的邮件:与文本邮件发送形式类似,
只是邮件正文内容的变化与设置的变化即可发送成。

import smtplib
from email.header import Header
from email.mime.text import MIMEText

# 1. 配置邮箱信息
sender = '2314419713@qq.com'  # 发件人
receiver = '2314419713@qq.com'  # 收件人
pass_code = 'vtukpynskaeaeaff'  # 授权码:是发件人的授权码,也就是你之前开启SMTP服务时返回的字符串

# 2. 邮箱服务连接
conn = smtplib.SMTP('smtp.qq.com', 25)  # qq邮箱的smtp服务地址:smtp.qq.com,默认端口:25

# 3. 邮件内容的定义
# 邮件正文,html内容
html = '''
    <p>这是hzp的html邮件内容</p>
    <p><a href="http://www.baidu.com">百度地址</a></p>
'''
content = MIMEText(html, 'html', 'utf-8')  # 实现邮件发送的内容定义,信封,因为是html内容,所以将plain改为html

# 4. 定义收件人与发件人,邮件主题等相关信息
content['From'] = sender  # 发件人
content['To']
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值