数据分析师不加班的秘密,三行代码教你Python自动发送邮件

本文主要是介绍数据分析师不加班的秘密,三行代码教你Python自动发送邮件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作为一名数据分析师,每天除了做数据日报,还要编写邮件正文和添加数据日报附件,发送给对应的负责人及销售个人,一般一封邮件应包含邮箱账户名、邮箱密码、发送人邮箱、邮件主题以及邮件正文。

本文借助Python工具,使用yagmail和zmail库的自动发邮件功能,逐一介绍这两个库的参数方法,并增加两个实际案例,教你如何使用QQ邮箱自动发邮件,其他邮箱发送方法类似,下面一起学习。

示例工具:anconda3.7
本文讲解内容:yagmail、zmail库的使用
适用范围:Python自动发送邮件

yagmail库

由于yagmail是第三方模块,在使用前先进行安装,如下代码,分别设置相关的邮箱参数,3行代码就可以将邮件发送出去。

import yagmail
#创建yagmail.SMTP实例
yag=yagmail.SMTP(user='xxx@163.com',password='password',host='smtp.163.com')#SMTP服务器域名
#发送邮件
yag.send(to='xx1@qq.com',subject='测试',contents='数据请查收!')

多人发送邮件,只需指定send()中的to参数为列表即可。

#给多人发送邮件
yag.send(to=['xx1@qq.com','xx2@qq.com'],subject='测试',contents='数据请查收!')

发送带附件的邮件,在send()函数中设置attachments参数即可,发送多个附件,指定attachments参数为一个列表即可。

#添加附件
yag.send(to=['xx1@qq.com','xx2@qq.com'],subject='测试',contents='数据请查收!',attachments=['a.jpg','b.png','c.xlsx'])

抄送和密送邮件,在send()函数中指定参数cc和bcc即可,其中,cc是Carbon Copy的简称,表示抄送,bcc是Blind Carbon Copy的简称,表示密送。

#抄送和密送
yag.send(to=['xx1@qq.com','xx2@qq.com'],cc='xxx1@126.com',#抄送bcc='xxx2@outlook.com',#密送subject='测试',contents='数据请查收!',attachments=['a.jpg','b.png','c.xlsx'])

使用发送邮件的邮箱需要开启SMTP服务,以qq邮箱为例开启SMTP,首先登陆qq邮箱平台,点击qq邮箱设置进入账户设置,将POP3/STMP和IMAP/SMTP开启。

按照要求回复短信内容,即可获得邮箱生成的十六位秘钥。

当qq邮箱作为发送方时,zmail.server第二个参数是开启IMAP/SMTP的十六位秘钥而不是密码,使用密码会报错,而使用其他邮箱作为发送方时使用密码发送成功。

下面使用一个具体的案例进行介绍,使用用户名及QQ邮箱生成的秘钥,设置收件人邮箱,邮件主题、邮件正文及添加附件即可发送成功。

import time
start=time.time()
import yagmail#创建yagmail.SMTP实例
yag=yagmail.SMTP(user='27******3@qq.com',password='fa********g',host='smtp.qq.com')#给多人发送邮件
yag.send(to=['27******3@qq.com ','37****484@qq.com'],subject='WK15数据日报',contents='数据日报,请查收!',attachments=['C:/Users/尚天强/Desktop/大话数据分析.Png','C:/Users/尚天强/Desktop/数据日报.xlsx','C:/Users/尚天强/Desktop/销售日报.html'])end=time.time()
print('邮件已发送发送成功,共计耗时{:.2f}秒'.format(end-start))

邮件已发送发送成功,共计耗时2.86秒,如下即为邮件发送成功的截图。

zmail库

同样,zmail是第三方模块,需要在命令行自行安装,使用zmail发送纯文本邮件,多个接收人可用列表。

import zmail
#邮件内容
mail_content={'subject':'WK15数据日报',#邮件标题'content_text':'数据日报,请查收!'}#邮件正文server=zmail.server('xxxxxx@qq.com','password') #使用邮件账户名和密码登录服务器#发送邮件,如果有多个收件人,则用列表[xxx1@163.com,xxx2@163.com]形式
server.send_mail('xxxxx@163.com',mail_content)

使用zmail发送带附件邮件。发送多个附件,指定attachments参数为一个列表。

#邮件内容
mail_content={'subject':'daily report',#邮件标题'content_text':'数据日报,请查收!',#邮件正文'attachments':['./a.png','./daily.x1sx']}#添加附件

zmail自动发邮件同样简单,先初始化邮件内容,然后使用账号密码模拟登录自己的邮箱,最后设置接收邮箱地址即可发送成功。

import time
start=time.time()
import zmail
#邮件内容
mail_content={'subject':'WK15数据日报',#邮件标题'content_text':'数据日报,请查收!',#邮件正文'attachments':['C:/Users/尚天强/Desktop/大话数据分析.Png','C:/Users/尚天强/Desktop/数据日报.xlsx','C:/Users/尚天强/Desktop/销售日报.html']}#添加附件#登录操作,使用邮件账户名和密码登录服务器
server=zmail.server('27******83@qq.com','fa********ceg')
#执行登录邮箱并发送邮件内容,如果有多个收件人,则用列表[xxx1@163.com,xxx2@163.com]形式
server.send_mail(['27*****83@qq.com','25*****484@qq.com'],mail_content)end=time.time()
print('邮件已发送发送成功,共计耗时{:.2f}秒'.format(end-start))

邮件已发送发送成功,共计耗时1.84秒。

以上就是Python自动发邮件的内容,代码稍加修改即可运行成功,亲测有效,更多实用的好玩的Python办公自动化的内容,可以关注我,持续分享办公自动化内容。

本文首发于公众号:大话数据分析,三年互联网数据分析经验,擅长Excel、SQL、Python、PowerBI数据处理工具,数据可视化、商业数据分析技能,统计学、机器学习知识,持续创作数据分析内容,点赞关注,不迷路。

这篇关于数据分析师不加班的秘密,三行代码教你Python自动发送邮件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/627760

相关文章

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Java Spring ApplicationEvent 代码示例解析

《JavaSpringApplicationEvent代码示例解析》本文解析了Spring事件机制,涵盖核心概念(发布-订阅/观察者模式)、代码实现(事件定义、发布、监听)及高级应用(异步处理、... 目录一、Spring 事件机制核心概念1. 事件驱动架构模型2. 核心组件二、代码示例解析1. 事件定义

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基