python自动邮件,python每天定时发送邮件
python中的schedule模块可以让我们方便简单的使用计划任务,也就是在特定时间自动执行部分任务的功能。本文将利用该模块实现邮件的自动发送,以供参考。
00-1010 schedule模块的用法schedule模块的各种时间用法schedule的启动本章是Python的办公自动化一章的最后一章。通过发送计划任务的电子邮件来学习计划模块-计划的使用。(本章内容简短)
目录
Python有一个用于调度任务的轻量级库:schedule。它可以完成每分钟,每小时,每天,每周和特定日期的预定任务。所以我们执行一些轻量级的计时任务是非常方便的。
定时模块的使用
计划任务:
在特定时间自动执行某些任务的功能。python中的调度模块可以让我们方便地使用调度任务。
计划安装:
PIP时间表如果安装失败,尝试更换国产图像源。
schedule 模块的介绍
每隔几分钟就会执行一次func函数,args是该函数的参数:
schedule . every(count). minutes . do(func,args)
func函数每天在的10336020执行一次,args是该函数的参数:
schedule . every()day . at( 10:20 )。do(func,args)
日程模块支持以下时间:
描述分钟分钟秒小时小时日日周日程模块支持的远不止这些。下面是一些常用的时间模式。
schedule 模块各种时间用法
说明类型schedule.run_pending执行PS:应该在 while 中执行,至少需要1秒来阻塞。
代码示例如下:
#编码:utf-8
导入smtplib
导入时间
导入计划# pip安装计划
从email.mime.text导入MIMEText
from email.header导入标题
从email.mime.multipart导入MIMEMultipart
第三方的SMPT【脚本中涉及的所有邮箱都是假的,请使用您真实的邮箱进行测试】
Mail_host=smtp.sina.com #设置邮箱服务器
Mail_user=conan868242 #设置您自己的邮箱
Mail_pass=cb997b01a87232b2 #这里是邮箱的密码,也就是授权码;这不是密码。
Sender=conan868242@sina.com #定义发件人的邮箱地址(实际上是他自己)
receivers=[ 3241716373 @ QQ.com ]#定义收件人的邮箱(可以是多个收件人)
# message=mime text( p style= color : red;这是一个测试/p , html , utf-8) #定义消息内容;“普通”是一种格式,意思是普通的文件内容。
Message=MIMEMultipart() #定义带有附件的邮件对象。
message[ from ]=header(sender)#定义消息中的发送信息-发送者。
message[ subject ]=header( Python测试邮件发送, utf-8) #定义消息中发送信息的标题。
# print(加密的发送内容\n ,message.as_string()) #打印出加密的发送内容。
Attr=mimetext (open (send.py , rb )。read(), base64 , UTF-8) #定义带附件的邮件内容;(默认为属性);
#以打开的形式读出要发送的文件。
#定义内容采用“base64”格式
attr[ content-type ]= application/octet-stream #定义属性的格式;‘应用程序/八位字节流’代表流上的协议。
#即定义“附件”的类型
attr[Content-Disposition]=附件;Filename=send.py #为传输的附件定义一个名称。
Message.attach(attr) #使用“消息”的“附加”功能添加“附件”
Message=MIMEText(这是带附件的消息, plain , utf-8) #定义消息的文本内容(即添加消息的主要内容)
定义发送():
打印(“邮件开始发送”)
Try: #捕捉发送邮件的异常
SmtpObj=smtplib。SMTP() #实例化SMTP协议对象
SmtpObj.connect(mail_host,25) # Link SMTP服务器
Smtpobj.login (mail _ user,mail _ pass) # Login邮箱认证
Smtpobj.sendmail (sender,receivers,message.as _ string ()) #发送邮件;“消息”通过“as_string()”对发送的内容字符串进行加密
除了smtplib。SMTPException为错误:
打印( error:{} )。格式(错误))
if __name__==__main__:
Schedule.every (10)。seconds.do (send) #每十秒发送一封邮件
而True: #延迟1秒启动定时任务。
schedule.run_pending()
时间.睡眠(1)
PS:可以考虑添加发送邮件和定时任务的时间差来调试定时任务。我就懒了,不在这里写了。
运行结果如下:
关于自动化办公中Python常规邮件的实现的这篇文章到此为止。关于Python的常规邮件的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。