文章定时自动采集(如何用python连接邮箱,自动发送邮件发送效果设置定时任务 )

优采云 发布时间: 2021-08-31 03:02

  文章定时自动采集(如何用python连接邮箱,自动发送邮件发送效果设置定时任务

)

  无论是在信用领域还是支付领域,作为风控官,我们都需要监控部署的策略模型。信用领域可能还需要监控客户的逾期表现。

  这时候,如果我们可以用python自动连接数据库,分析处理策略、模型、贷后业绩等数据,输出标准表格或图片到固定文件夹。

  使用python定期自动向领导和同事发送监控邮件,让相关人员及时更新策略模型的运行状态和项目的逾期状态,这是一件很有意义的事情。

  本文重点讲解如何使用python连接邮箱并自动发送邮件。至于python连接数据库的数据处理模块,有空再分享给大家。

  本文内容

  自动定时任务操作详情打开POP3/SMTP服务发送邮件3.1 导入库3.2 设置邮件内容3.3 添加附件3.4 发送邮件3.5 邮件发送效果设置定时任务4.1 定时任务设置具体步骤4.2 定时任务设置教学视频

  一、自动定时任务操作详情

  我们先来看看自动定时任务发送邮件的操作细节:

  二、启用 POP3/SMTP 服务

  使用python连接邮箱时,需要开启POP3/SMTP服务。本文以qq邮箱为例进行讲解。其他邮箱开通方式请自行百度。

  首先登录网页版qq邮箱——>点击设置——>点击账号——>下拉找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务。

  然后打开 POP3/SMTP 服务(只需按照说明操作即可)。

  打开POP3/SMTP服务主要是获取代码中使用的token,是类似于字符串的一串文本。启动服务时记得保存。

  三、发送邮件

  使用python发送邮件时,主要使用smtplib和email库。这两个库是内置的,可以直接导入。

  1 个导入库

  import os

import email

import smtplib

import datetime

from email.header import Header

from email.mime.text import MIMEText

from email.mime.image import MIMEImage

from email.mime.multipart import MIMEMultipart

#加载发送邮件需要用到的库

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_name" # 设置发送者邮箱

mail["To"] = "receiver_1_name,receiver_2_name" #设置接受者邮箱

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桌面左下角的搜索菜单,输入“控制面板”,控制面板会出现在最匹配的位置,点击控制面板。

  接下来在控制面板的搜索框中输入“任务”二字,会出现管理工具和定时任务,点击定时任务。

  下一步,点击创建基础任务,填写名称和描述(可自定义),点击下一步。默认为每天。如需更改为每周,可自行选择。

  点击下一步,设置任务的开始时间,点击下一步,选择启动程序,然后点击下一步。

  然后点击Browse,选择需要计时的python脚本,最后点击Finish。

  2 定时任务设置教学视频

  最后,我们来看一下设置定时任务的教学视频。具体步骤可以参考视频进行设置。

  到此,python实现每天自动发邮件的应用已经讲解完毕,感兴趣的同学可以关注这篇文章,自己实现

  .

  留个小作业,大家想一想,如果是每天产生的新数据,如何利用新数据发邮件?欢迎大家在视频中留言

  .

  参考资料

  https://zhuanlan.zhihu.com/p/89868804

https://www.jb51.net/article/130411.htm

https://www.cnblogs.com/yufeihlf/p/5726619.html

https://jingyan.baidu.com/article/154b463130041128ca8f41c7.html

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线