千家信息网

Python怎么实现自动化发送邮件

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这期内容当中小编将会给大家带来有关Python怎么实现自动化发送邮件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python是什么意思Python是一种跨平台的、
千家信息网最后更新 2026年11月01日Python怎么实现自动化发送邮件

这期内容当中小编将会给大家带来有关Python怎么实现自动化发送邮件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

python是什么意思

Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。

开门见山

自动化测试过程中,一般测试结果都会以邮件的形式发送给相关人员,那么,在Python中,如何编写代码将邮件发送给对应的用户?

同时,发送邮件时又有不同的形式,比如:文本、HTML、图片附件、非图片附件等,这些又是如何操作的呢?下面我们一起来学习学习~

自动化发送邮件SMTP 介绍

SMTP中文名为简单邮件传输协议,是一种提供可靠且有效的电子邮件传输的协议,可以传输系统之间的邮件信息。

SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。

SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即"SMTP邮件中继"。

使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。

我们以QQ邮箱为例,需要发送邮件,必须首先开启SMTP服务。

开启SMTP服务

登录QQ邮箱,点击设置;点击账户;

将POP3/SMTP服务点击为已开启状态;按照步骤生成授权码,授权码一般为16位。

按照以上步骤,SMTP服务很简单就开启好了。

邮件的属性配置

新建一个Python文件编写代码:

# 邮箱属性配置# 邮箱服务端mailserver = 'smtp.qq.com' # 发件人-此邮箱是我随便写的userName_SendMail = '666666666@qq.com'  # 邮箱发件授权码-为发件人邮箱根据第四步生成的授权码userName_AuthCode = 'abcdefghijklmnop'# 定义邮件的接收者-我随便写的,若收件人较多,可用列表表示received_mail = ['888888888@qq.com','999999999@qq.com']
若为QQ邮箱,则服务端为smtp.qq.com,若为163邮箱,则服务端为smtp.163.com,其他邮箱大家可自行百度查询。

发送文本邮件

小试牛刀,我们先发送一封简单的文本邮件。

导包:

需要使用到SMTPLIB库来进行邮箱的连接import smtplib。处理邮件内容的库:email.mine,发送文本邮件需要导入:from email.mime.text import MIMEText。

# 需要使用到SMTPLIB库来进行邮箱的连接import smtplib# 处理邮件内容的库,email.minefrom email.mime.text import MIMEText# 邮箱属性配置# 邮箱服务端mailserver = 'smtp.qq.com' # 发件人-此邮箱是我随便写的userName_SendMail = '666666666@qq.com'  # 邮箱发件授权码-为发件人邮箱根据第四步生成的授权码userName_AuthCode = 'abcdefghijklmnop'# 定义邮件的接收者-我随便写的,若收件人较多,可用列表表示received_mail = ['888888888@qq.com','999999999@qq.com'] # 发送一封简单的邮件,处理邮件内容content = '这是一封纯粹的文本信息内容!这是一封纯粹的文本信息内容!'# 纯文本形式的邮件内容的定义,通过MIMEText进行操作,plain为默认的文本的展示形式email = MIMEText(content, 'plain', 'utf-8')  email['Subject'] = '这是邮件的主题'  # 定义邮件主题email['From'] = userName_SendMail  # 发件人email['To'] = ','.join(received_mail)  # 收件人(可以添加多个,若只有一个收件人,可直接写邮箱号)# 发送邮件# QQ邮箱的端口号是465,其他邮箱的端口号可自行百度,非QQ邮箱,一般使用SMTP即可,不需要有SSLsmtp = smtplib.SMTP_SSL(mailserver, port=465) smtp.login(userName_SendMail, userName_AuthCode)smtp.sendmail(userName_SendMail, ','.join(received_mail), email.as_string())smtp.quit()print('好厉害啊,邮件发送成功了')

发送HTML邮件

发送其他邮件与以上代码类似,邮箱的属性配置和发送邮件部分不发生变化,只需修改对于邮件内容的处理部分。

将MIMEText(content, ‘plain’, ‘utf-8’)改为 MIMEText(content, ‘HTML’, ‘utf-8’),plain为默认的文本的展示形式。

# 需要使用到SMTPLIB库来进行邮箱的连接import smtplib# 处理邮件内容的库,email.minefrom email.mime.text import MIMEText# 邮箱属性配置# 邮箱服务端mailserver = 'smtp.qq.com' # 发件人-此邮箱是我随便写的userName_SendMail = '666666666@qq.com'  # 邮箱发件授权码-为发件人邮箱根据第四步生成的授权码userName_AuthCode = 'abcdefghijklmnop'# 定义邮件的接收者-我随便写的,若收件人较多,可用列表表示received_mail = ['888888888@qq.com','999999999@qq.com'] # 发送一封HTML内容的邮件content = """

这是一封HTML文本的邮件

点击这里进入百度

"""email = MIMEText(content, 'HTML', 'utf-8')email['Subject'] = '这是邮件的主题_HTML' # 定义邮件主题email['From'] = userName_SendMail # 发件人email['To'] = ','.join(received_mail) # 收件人# 发送邮件# QQ邮箱的端口号是465,其他邮箱的端口号可自行百度,非QQ邮箱,一般使用SMTP即可,不需要有SSLsmtp = smtplib.SMTP_SSL(mailserver, port=465) smtp.login(userName_SendMail, userName_AuthCode)smtp.sendmail(userName_SendMail, ','.join(received_mail), email.as_string())smtp.quit()print('好厉害啊,邮件发送成功了')

发送附件邮件

发送附件邮件,邮箱发送形式改为email = MIMEMultipart(),并对发送的附件进行处理,处理邮件附件需要导入MIMEMultipart,Header,MIMEBase。

导包:

from email.mime.multipart import MIMEMultipart

from email.header import Header

from email.mime.base import MIMEBase

# 需要使用到SMTPLIB库来进行邮箱的连接import smtplib# 处理邮件附件,需要导入MIMEMultipart,Header,MIMEBasefrom email.mime.multipart import MIMEMultipartfrom email.header import Headerfrom email.mime.base import MIMEBasefrom email import encoders  # 编码格式# 邮箱属性配置# 邮箱服务端mailserver = 'smtp.qq.com' # 发件人-此邮箱是我随便写的userName_SendMail = '666666666@qq.com'  # 邮箱发件授权码-为发件人邮箱根据第四步生成的授权码userName_AuthCode = 'abcdefghijklmnop'# 定义邮件的接收者-我随便写的,若收件人较多,可用列表表示received_mail = ['888888888@qq.com','999999999@qq.com'] # 邮件中发送附件# 附件配置邮箱email = MIMEMultipart()email['Subject'] = '这是邮件的主题_非图片附件'  # 定义邮件主题email['From'] = userName_SendMail  # 发件人email['To'] = ','.join(received_mail)  # 收件人(可以添加多个,若只有一个收件人,可直接写邮箱号)# 附件处理att = MIMEBase('application', 'octet-stream')  # 规范att.set_payload(open('测试文件.txt', 'rb').read())att.add_header('Content-Disposition', 'attachment', filename=Header('测试文件.txt', 'gbk').encode())encoders.encode_base64(att)email.attach(att)# 发送邮件smtp = smtplib.SMTP_SSL(mailserver, port=465)  # QQ邮箱的端口号是465,其他邮箱的端口号可自行百度,非QQ邮箱,一般使用SMTP即可,不需要有SSLsmtp.login(userName_SendMail, userName_AuthCode)smtp.sendmail(userName_SendMail, ','.join(received_mail), email.as_string())smtp.quit()print('好厉害啊,邮件发送成功了')

上述就是小编为大家分享的Python怎么实现自动化发送邮件了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

邮件 邮箱 服务 内容 发件人 附件 文本 处理 收件人 传输 配置 主题 口号 属性 形式 这是 自动化 生成 之间 信息 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 苏州找大状互联网科技有限公司 互联网科技工作委员会副主任毛军 紫鲸互联网科技 润盈互联网科技 四川狮子座互联网科技 佰商互联网科技有限公司 福州新华互联网科技学校 知乎 汽车互联网创新科技园 重庆威客帮互联网科技 广州恒生互联网科技有限 互联网科技创新服务 浙南科技城互联网大厦建设工程 互联网公司黑科技创始人 高科技互联网发展前景如何 银川新华互联网科技学校是国营吗 保山互联网科技靠谱吗 银川新华互联网科技学校原画 美国五大互联网科技公司市值多少 互联网科技创业计划的风险分析 上海旺乐尼互联网科技有限公司 上海喔噻互联网科技有限公司 科技互联网政务服务 金融科技创新监管互联网金融 互联网医疗科技 合肥互联网科技公司 善班互联网科技有限公司 互联网科技汛 温州喔噻互联网科技有限公司 互联网行业科技股 互联网时代的科技公司
0