本文实例为大家分享了python实现定时发送邮件到指定邮箱的具体代码,供大家参考,具体内容如下
整个链路:传感器采集端采集数据,边缘端上传数据库,从数据库拿到数据。
产品端有个自动出报告的需求,并且希望自动出的报告可以定时通过邮件发到指定邮箱中。
自动发邮件中也有较多坑,本文特此记录自动发邮件中的坑。
使用:Python3.7,win10系统,163邮箱作为发邮件方,QQ邮箱作为收邮件方。
**第一步:**申请两个账号分别作为发送和接收的账号,本文用的是一个163邮箱,一个是qq邮箱。
第一个坑需要注意了,上图是qq邮箱中的邮箱设置,需要在账户中开启POP3/SMTP服务(一定要开启,不然即使Python中的代码都是对的,也不能正常发送邮件,因为Python中发邮件用的是SMTP的邮件传输协议包),这里还有一个坑需要注意的是:如果你把这个邮箱当作是发送邮件的一方,还需要记住授权码,因为Python中邮箱的登录是用授权码的而不是密码。
在163邮箱中的设置中也将POP3/SMTP服务打开。
开启SMTP服务后,一定要记住授权码
**第二步:**Python编写程序
#发送邮件模块 import smtplib #写邮件模块 import email #定义邮件类型及内容 """ 邮件体为多组件类型(如果不是单一发送文本或者图片或者附件,那么就需要这个多组件类型将 其它元素打包进来) """ from email.mime.multipart import MIMEMultipart #邮件中的文本信息 from email.mime.text import MIMEText #邮件中的图片信息 from email.mime.image import MIMEImage #定义邮件标题 from email.header import Header ################################################################################################# #设置服务器所需信息 #邮件发送方邮箱地址 sender='写发送方邮箱地址,这里只是示意一下@163.com' #这个是163邮箱里面POP3/SMTP开启后的授权码,一定注意不是163邮箱的登录密码 #第一次做的时候设置成邮箱登录密码反而邮件不能发送,改成授权码之后才可以 password='这里写授权码,注意不是邮箱登录密码,授权码一般是由随机的16位字母组成' #邮件接收方邮箱地址,注意需要[]包裹,这意味着你可以写多个邮件地址群发 receivers=['写接收方邮箱地址,这里只是示意一下@qq.com'] ############################################################################################### #邮件基本信息输入 #设置总的邮件体对象,对象类型为mixed mix_part=MIMEMultipart('mixed') #发送者邮箱地址 mix_part['From']='写发送方邮箱地址,这里只是示意一下@163.com<写发送方邮箱地址,这里只是示意一下@163.com>' #接收者邮箱地址 mix_part['To']='写接收方邮箱地址,这里只是示意一下@qq.com' #邮件标题 subject='2020-5-21测试报告' mix_part['subject']=Header(subject,'utf-8') ################################################################################################# #构造文本内容,也就是邮件中正文部分的内容 """ 三个参数: 第一个为文本内容,第二个plain设置文本格式,第三个utf-8设置编码 """ message_info='python邮件发送测试' message=MIMEText(message_info,'plain','utf-8') #通过多组件类型将文本内容打包进来 mix_part.attach(message) ############################################################################################### #邮件中附件文本的构造 #设置附件文本的路径,除了改路径,其它几行代码基本不需要改动 txt_path=r'C:\Users\Desktop\测试文件.pdf' txt_file = open(txt_path, 'rb').read() txt = MIMEText(txt_file, 'base64', 'utf-8') txt["Content-Type"] = 'application/octet-stream' # 命名发送的附件名称 txt.add_header('Content-Disposition', 'attachment', filename='测试报告.pdf') #通过多组件类型将文本附件打包进来 mix_part.attach(txt) #################################################################################### # 邮件中图片附件的构造 #设置附件图片的路径,除了改路径,其它几行代码基本不需要改动 image_path=r'C:\Users\Desktop\images\test.png' image_file = open(image_path, 'rb').read() image = MIMEImage(image_file) image.add_header('Content-ID', '<image1>') #filename需要改成上传的图片名称 image["Content-Disposition"] = 'attachment; filename="test.png"' #通过多组件类型将图片附件打包进来 mix_part.attach(image) ################################################################################################### try: """ qq邮箱服务器地址的设置,如果是用qq邮箱发邮件则需要设置, 本文是用163邮箱发邮件,所以只需要设置163邮箱服务器地址即可 """ # smtpObj=smtplib.SMTP('smtp.exmail.qq.com') #163邮箱服务器地址的设置 smtpObj = smtplib.SMTP('smtp.163.com') #登录:账号,密码 smtpObj.login(sender,password) smtpObj.sendmail(sender,receivers,mix_part.as_string()) smtpObj.quit() print('邮件发送成功') except smtplib.SMTPException: print('Error:无法发送邮件')
第三步:电脑设置定时发送邮件
win+r调出运行窗口输入taskschd.msc
创建基本任务,然后按照提示一步步点下去即可
按照自己的需求,我这里选择的是一次,然后设置启动程序的未来时间即可
程序或脚本一栏不需要改变,起始于(可选)指的是Python的路径,添加参数(可选)指的是刚才编好的自动发邮件程序的路径。
点击完成即可。
总结如下:
(1)需要将发邮件和接收邮件邮箱设置中的SMTP服务打开,并记住授权码
(2)Python编写程序按步骤一步步来,应该没有啥问题
(3)电脑中设置自动运行程序时,需要注意设置的起始于(可选)以及添加参数(可选)的路径
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 中国武警男声合唱团《辉煌之声1天路》[DTS-WAV分轨]
- 紫薇《旧曲新韵》[320K/MP3][175.29MB]
- 紫薇《旧曲新韵》[FLAC/分轨][550.18MB]
- 周深《反深代词》[先听版][320K/MP3][72.71MB]
- 李佳薇.2024-会发光的【黑籁音乐】【FLAC分轨】
- 后弦.2012-很有爱【天浩盛世】【WAV+CUE】
- 林俊吉.2012-将你惜命命【美华】【WAV+CUE】
- 晓雅《分享》DTS-WAV
- 黑鸭子2008-飞歌[首版][WAV+CUE]
- 黄乙玲1989-水泼落地难收回[日本天龙版][WAV+CUE]
- 周深《反深代词》[先听版][FLAC/分轨][310.97MB]
- 姜育恒1984《什么时候·串起又散落》台湾复刻版[WAV+CUE][1G]
- 那英《如今》引进版[WAV+CUE][1G]
- 蔡幸娟.1991-真的让我爱你吗【飞碟】【WAV+CUE】
- 群星.2024-好团圆电视剧原声带【TME】【FLAC分轨】