os.chdir(r"E:\自动化邮件") #设置发送邮件时附件文件存放的地址
其中smtplib模块主要负责发送邮件,email模块主要负责构建邮件。 os.chdir 中的文件路径记得替换成你存放邮件附件的路径。
2 设置邮件内容
平常我们发送邮件,主要需填写收件人、邮件主题、邮件正文、附件等信息。使用python发送邮件,同样也是填写这些信息,不过是在语句中注明。
mail_sender = "2275885700@qq.com" # 发送者邮箱名
mail_license = '****************' # 发送者邮箱授权码,即开启POP3/SMTP服务获取的token,需替换成你的邮箱
mail_host = "smtp.qq.com" # SMTP服务器,这里为qq邮箱,若为163邮箱请用163替换qq
mail_receivers = ["2275885700@qq.com","wawoxzy@163.com"] #收件人邮箱
mail = MIMEMultipart('related') # 设置邮件主体
mail["From"] = "sender_name2275885700@qq.com" # 设置发送者邮箱
mail["To"] = "receiver_1_name2275885700@qq.com,receiver_2_namewawoxzy@163.com" #设置接受者邮箱
subject_content = '【日报】风险监测' # 设置邮件主题
mail["Subject"] = Header(subject_content,'utf-8') # 添加邮件主题
body_content = """
各位好,
这是风险监测日报,请查收!
BestRegards,
谢XX
""" # 设置邮件正文
message_text = MIMEText(body_content,"plain","utf-8") # 设置正文内容、文本格式、编码方式
mail.attach(message_text) # 向MIMEMultipart对象中添加文本对象
注意: mail_license 中的值需替换成你在开启POP3/SMTP服务时获取的token。以上语句中的内容,可根据需要自行调整,如有疑问可参考后面的备注信息。
3 添加附件
附件信息一般是图片和数据文档,故本文对这两种附件进行阐述,你只需把名字换成你的附件名即可。
image_picture = open('yk2.jpg','rb') # 打开附件图片
message_image = MIMEImage(image_picture.read()) # 设置读取获取的二进制数据
#message_image.add_header('Content-ID','')
message_image["Content-Disposition"] = 'attachment; filename="yk2.jpg"' # 设置附件图片名称
mail.attach(message_image) # 把图片添加到邮件中去
image_picture.close() # 关闭刚才打开的图片
mail.attach(message_image) # 把图片添加为邮件附件
atta = MIMEText(open('BlackFriday.csv', 'rb').read(),'base64','utf-8') # 添加数据(csv、excel等)附件
atta["Content-Disposition"] = 'attachment; filename="BlackFriday.csv"' # 设置数据(csv、excel等)附件名称
mail.attach(atta) # 把csv附件添加到邮件中去
4 发送邮件
邮件正文和附件都设置好后,就可以发送邮件啦,具体语句如下:
smtp = smtplib.SMTP() # 创建SMTP对象
smtp.connect(mail_host, 25) # 设置发件人邮箱的域名和端口,端口地址为25
smtp.set_debuglevel(1) # 打印和SMTP服务器交互的所有信息
smtp.login(mail_sender,mail_license) # 根据邮箱地址和邮箱收起码登录邮箱
smtp.sendmail(mail_sender, mail_receivers, mail.as_string()) # 发送邮件,并设置邮件内容格式为str
now_time = datetime.datetime.now().strftime('%Y-%m-%d') # 获取当前时间
print(now_time+" 日监控邮件发送成功") # 打印某日成功发送邮件记录
smtp.quit() # 关闭SMTP对象
至此,邮件已发送完毕,接着我们来看下邮件发送效果吧。
5 邮件发送效果
python发送的邮件和我们手动发送的邮件是一样的,具体可见如下图片。
接下来,我们看看如何设置定时任务,每天定时发送邮件吧。
四、设置定时任务
在前面两节中介绍了如何用python自动发送邮件。本节介绍如何设置定时任务,在固定时间去抓取固定文件中的内容。
1 设置定时任务的具体步骤
首先,点击windows桌面左下角的搜索菜单,输入“控制面板”,就会在最佳匹配中出现控制面板,点击控制面板。
接着,在控制面板的搜索框输入”任务“两个字,就会出现管理工具和计划任务,点击计划任务。
接着,点击创建基本任务,填写名称和描述(可自定义),点击下一步默认为每天,如需改成每周,自行选择即可。
文末有福利领取哦~
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具
👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
👉五、Python练习题
检查学习结果。
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传