Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >干货 | 解放双手,用Python实现自动发送邮件

干货 | 解放双手,用Python实现自动发送邮件

作者头像
派大星的数据屋
发布于 2022-04-02 11:57:21
发布于 2022-04-02 11:57:21
1.9K02
代码可运行
举报
运行总次数:2
代码可运行

使用Python实现自动化邮件发送,可以让你摆脱繁琐的重复性业务,节省非常多的时间。 Python有两个内置库:smtplibemail,能够实现邮件功能,smtplib库负责发送邮件,email库负责构造邮件格式和内容。 邮件发送需要遵守SMTP协议,Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。 1、先导入相关的库和方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import smtplib
import email
# 负责构造文本
from email.mime.text import MIMEText
# 负责构造图片
from email.mime.image import MIMEImage
# 负责将多个对象集合起来
from email.mime.multipart import MIMEMultipart
from email.header import Header

2、设置邮箱域名、发件人邮箱、邮箱授权码、收件人邮箱

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# SMTP服务器,这里使用163邮箱
mail_host = "smtp.163.com"
# 发件人邮箱
mail_sender = "******@163.com"
# 邮箱授权码,注意这里不是邮箱密码,如何获取邮箱授权码,请看本文最后教程
mail_license = "********"
# 收件人邮箱,可以为多个收件人
mail_receivers = ["******@qq.com","******@outlook.com"]

3、构建MIMEMultipart对象代表邮件本身,可以往里面添加文本、图片、附件等

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mm = MIMEMultipart('related')

4、设置邮件头部内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 邮件主题
subject_content = """Python邮件测试"""
# 设置发送者,注意严格遵守格式,里面邮箱为发件人邮箱
mm["From"] = "sender_name<******@163.com>"
# 设置接受者,注意严格遵守格式,里面邮箱为接受者邮箱
mm["To"] = "receiver_1_name<******@qq.com>,receiver_2_name<******@outlook.com>"
# 设置邮件主题
mm["Subject"] = Header(subject_content,'utf-8')

5、添加正文文本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 邮件正文内容
body_content = """你好,这是一个测试邮件!"""
# 构造文本,参数1:正文内容,参数2:文本格式,参数3:编码方式
message_text = MIMEText(body_content,"plain","utf-8")
# 向MIMEMultipart对象中添加文本对象
mm.attach(message_text)

6、添加图片

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 二进制读取图片
image_data = open('sample.jpg','rb')
# 设置读取获取的二进制数据
message_image = MIMEImage(image_data.read())
# 关闭刚才打开的文件
image_data.close()
# 添加图片文件到邮件信息当中去
mm.attach(message_image)

7、添加附件(excel表格)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 构造附件
atta = MIMEText(open('sample.xlsx', 'rb').read(), 'base64', 'utf-8')
# 设置附件信息
atta["Content-Disposition"] = 'attachment; filename="sample.xlsx"'
# 添加附件到邮件信息当中去
mm.attach(atta)

8、发送邮件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 创建SMTP对象
stp = smtplib.SMTP()
# 设置发件人邮箱的域名和端口,端口地址为25
stp.connect(mail_host, 25)  
# set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息
stp.set_debuglevel(1)
# 登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码
stp.login(mail_sender,mail_license)
# 发送邮件,传递参数1:发件人邮箱地址,参数2:收件人邮箱地址,参数3:把邮件内容格式改为str
stp.sendmail(mail_sender, mail_receivers, mm.as_string())
print("邮件发送成功")
# 关闭SMTP对象
stp.quit()

结果 看看邮箱接收到来自python的邮件长什么样:

附:如何设置邮箱授权码

本文测试发送邮箱为163邮箱,可按如下步骤获取邮箱授权码 第一步:登陆网页163邮箱,找到设置并打开

第二步:点击设置中的客户端授权密码

第三步:点击开启,并按提示设置你的授权密码

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python大数据分析 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python发送邮件(二)——smtplib模块和email模块
一、模块介绍 1、smtplib 模块(用于邮件的发送) ①理论解释 smtplib.SMTP([host[, port[, local_hostname[, timeout]]]]) 通过这个语句,可以向SMTP服务器发送指令,执行相关操作(如:登陆、发送邮件)。所有的参数都是可选的。 host:smtp服务器主机名 port:smtp服务的端口,默认是25;端口号可以省略。 但是使用25号端口有一个问题,就是保密性不够好,数据都是明文传输,没有加密。 现在一般都推荐使用SSL,Secure So
Elsa_阿尼
2021/07/27
5.3K0
python发送邮件(二)——smtplib模块和email模块
【干货】用Python每天定时发送监控邮件
不管是在信贷领域还是支付领域,作为一个风控人员,我们都需要对部署的策略模型进行监控,信贷领域可能还需要对客户的逾期表现进行监控。
阿黎逸阳
2021/07/23
2.6K0
【干货】用Python每天定时发送监控邮件
python之SMTP发送邮件
假设我们自己的邮件地址是myemail@163.com,对方的邮件地址是friend@qq.com,我们在网易提供的163邮箱界面编写邮件,然后发送给对方。那么,这封邮件是怎么从我方发送到对方的呢?
菲宇
2019/06/13
1.4K0
python发送邮件
一.获取邮箱授权(以QQ邮箱为例子) 点击设置>账号 开启服务:POP3/SMTP服务 选择开启 然后获取授权码xxx 二.发送文本 import smtplib from email.mime.text import MIMEText subject = "标题" # 邮件的主题 content = '测试' #内容 sender = "568972484@qq.com" # 发件人 password = 'xxx' # 刚才我们在QQ邮箱里设置的授权密码 receiver = "5689
小小咸鱼YwY
2020/06/19
5410
Python实现自动发送邮件(详解)
这点很关键,别忘了去开启SMTP, 别忘了去开启SMTP,否则邮件是无法发送成功的 。然后你还需要点击下面生成授权码,这个授权码才是使用Python发送邮件时的真正密码。
全栈程序员站长
2022/11/17
1.1K0
Python实现自动发送邮件(详解)
Python3实现自动发送邮件
首先了解SMTP(简单邮件传输协议),邮件传送代理程序使用SMTP协议来发送电邮到接收者的邮件服务器。SMTP协议只能用来发送邮件,不能用来接收邮件,而大多数的邮件发送服务器都是使用SMTP协议。SMTP协议的默认TCP端口号是25。
用户9925864
2022/07/27
3370
Python3实现自动发送邮件
python SMTP自动发送文本,HTML,附件邮件
1.发件人的邮件 比如:sender@163.com,sender@126.com,sender@qq.com,sender@gmal.com
用户8346838
2021/03/11
1.4K0
python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇——下(详解)
  发邮件前我们需要了解的是邮件是怎么一个形式去发送到对方手上的,通俗点来说就是你写好一封信,然后装进信封,写上地址,贴上邮票,然后就近找个邮局,把信仍进去,其他的就不关心了,只是关心时间,而电子邮件不像日常发送邮件的按天算,时间都是按
北京-宏哥
2019/09/11
1.5K0
python接口自动化(三十三)-python自动发邮件总结及实例说明番外篇——下(详解)
python笔记3-发送邮件(smtplib)
前言 本篇总结了QQ邮箱和163邮箱发送邮件,邮件包含html中文和附件,可以发给多个收件人,专治各种不行,总之看完这篇麻麻再也不用担心我的邮件收不到了。 以下代码兼容python2和python3,
上海-悠悠
2018/04/08
1.1K0
python笔记3-发送邮件(smtplib)
python发送邮件
文章目录 1. python发送邮件 1.1. 准备 1.1.1. smtplib 1.2. email 1.3. 普通文本邮件 1.4. 发送html邮件 1.5. 附件的发送 1.6. 将图片嵌入到正文信息中 python发送邮件 准备 python中发送邮件主要用的是smtplib和email两个模块,下面主要对这两个模块进行讲解 在讲解之前需要准备至少两个测试的邮箱,其中要在邮箱的设置中开启smtplib协议才可以进行发送和接受 smtplib smtplib.SMTP( [host
爱撒谎的男孩
2019/12/31
8060
Python发送邮件
Python发邮件需要有SMTP服务,可以在本地搭建SMTP服务,也可以使用第三方的SMTP服务(比如网易邮箱或QQ邮箱)。 这里我使用了网易126邮箱来发邮件。
海天一树
2018/07/25
1.5K0
Python发送邮件
Python发送邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
青阳
2021/11/26
9130
python发邮件详解,smtplib和email模块详解
在介绍具体的实现python发邮件的具体操作之前,我觉得有必要介绍下SMTP,更有助于理解python发邮件的实现原理。SMTP协议属于TCP/IP协议簇,即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式,python实现发邮件也是基于此基础上进行封装的。
全栈程序员站长
2022/11/01
1.3K0
python发邮件详解,smtplib和email模块详解
【Python实用工具】巧妙利用Python实现发送带附件的邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
天道Vax的时间宝藏
2021/08/11
2.5K0
python自动发邮件总结及实例说明
python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是python自带的,只需import即可使用。smtplib模块主要负责发送邮件,email模块主要负责构造邮件。
周小董
2019/03/25
1.4K0
python自动发邮件总结及实例说明
Python自动发送4种形式的邮件,你会了吗?
Hi,大家好。自动化测试过程中,一般测试结果都会以邮件的形式发送给相关人员,在Python中,如何通过编写代码将邮件发送给对应的接收人呢?
可可的测试小栈
2022/06/06
1.1K1
Python自动发送4种形式的邮件,你会了吗?
python使用smtplib和MIMEText发送邮件
1.使用Python来操作邮箱:https://blog.csdn.net/qq_38059635/article/details/81569081
晓歌
2018/10/11
5.2K0
python使用smtplib和MIMEText发送邮件
31.1企业级开发进阶3.1:发送电子邮件
从古代的八百里加急,到现在的电子邮件,邮件的发展见证了上下五千年的发展史,这些当然是废话,只是要说说邮件的重要性。
大牧莫邪
2018/08/27
1.7K0
Python定时发送邮件
首先我们先申请一个邮箱的授权码用于邮箱身份验证。然后编写Python程序,利用SMTP发送邮件。最后利用Windows任务计划程序实现每天定时执行程序。
一只大鸽子
2022/12/06
9480
Python定时发送邮件
smtplib:Python使用QQ邮箱发送邮件
一般来说,每个App都有一个意见反馈功能。对于企业,其意见反馈自然是发送到其服务器上,而对于个人应用来说,因为使用的人相对较少,在初期推广的时候,可以将意见反馈设置成发送到自己邮箱,这样可以节约服务器的资源开销。
luckpunk
2023/09/29
8800
smtplib:Python使用QQ邮箱发送邮件
相关推荐
python发送邮件(二)——smtplib模块和email模块
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验