设为首页收藏本站

安徽论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12204|回复: 0

Python实现定时发送监控邮件

[复制链接]

83

主题

0

回帖

261

积分

中级会员

Rank: 3Rank: 3

积分
261
发表于 2022-3-26 11:03:31 | 显示全部楼层 |阅读模式
网站内容均来自网络,本站只提供信息平台,如有侵权请联系删除,谢谢!
目录

不管是在信贷领域还是支付领域,作为一个风控人员,我们都需要对部署的策略模型进行监控,信贷领域可能还需要对客户的逾期表现进行监控。这时,如果我们能用python自动连接数据库,对策略、模型、贷后表现等数据进行分析处理,输出标准表格或图片到固定文件夹中。再用python自动定时给领导和同事发送监控邮件,就可以让相关人员及时了策略模型的运行状态、项目的逾期动态,是一件很有意义的事。
本文着重讲解如何用python连接邮箱,自动发送邮件,至于python连接数据库进行数据处理模块,后续有时间了再跟大家分享。

一、自动定时任务运行详情

首先来看下,自动定时任务发送邮件的运行详情,视频链接

二、开启POP3/SMTP服务

在用python连接邮箱时,需要开启POP3/SMTP服务,本文以qq邮箱为例进行讲解,其它邮箱开启方法请自行百度。首先登录网页版qq邮箱—>点击设置—>点击帐户—>下拉找到POP3/IMAP/SMTP/ Exchange/CardDAV/CalDAV服务。

然后开启POP3/SMTP服务(根据指示步骤操作即可)。

开启POP3/SMTP服务主要是想获取代码中用到的token,是一串类似字符串的文本,大家在开启服务的过程中,记得保存。

三、发送邮件

使用python发送邮件时,主要用到smtplib和email库,这两个库是自带的,直接导入即可。 

1 导入库
  1. import os
  2. import email
  3. import smtplib
  4. import datetime
  5. from email.header import Header
  6. from email.mime.text import MIMEText
  7. from email.mime.image import MIMEImage
  8. from email.mime.multipart import MIMEMultipart
  9. #加载发送邮件需要用到的库

  10. os.chdir(r"E:\自动化邮件") #设置发送邮件时附件文件存放的地址
复制代码
其中smtplib模块主要负责发送邮件,email模块主要负责构建邮件。
  1. os.chdir
复制代码
中的文件路径记得替换成你存放邮件附件的路径。

2 设置邮件内容

平常我们发送邮件,主要需填写收件人、邮件主题、邮件正文、附件等信息。使用python发送邮件,同样也是填写这些信息,不过是在语句中注明。
  1. mail_sender = "2275885700@qq.com"            # 发送者邮箱名
  2. mail_license = '****************'            # 发送者邮箱授权码,即开启POP3/SMTP服务获取的token,需替换成你的邮箱
  3. mail_host = "smtp.qq.com"                    # SMTP服务器,这里为qq邮箱,若为163邮箱请用163替换qq
  4. mail_receivers = ["2275885700@qq.com","wawoxzy@163.com"]  #收件人邮箱
  5. mail = MIMEMultipart('related')              # 设置邮件主体
  6. mail["From"] = "sender_name<2275885700@qq.com>"           # 设置发送者邮箱
  7. mail["To"] = "receiver_1_name<2275885700@qq.com>,receiver_2_name<wawoxzy@163.com>" #设置接受者邮箱
  8. subject_content = '【日报】风险监测'                      # 设置邮件主题
  9. mail["Subject"] = Header(subject_content,'utf-8')         # 添加邮件主题
  10. body_content = """
  11. 各位好,

  12.     这是风险监测日报,请查收!
  13.    
  14. BestRegards,
  15. 谢XX


  16. """                                         # 设置邮件正文
  17. message_text = MIMEText(body_content,"plain","utf-8")   # 设置正文内容、文本格式、编码方式
  18. mail.attach(message_text)                   # 向MIMEMultipart对象中添加文本对象
复制代码
注意:
  1. mail_license
复制代码
中的值需替换成你在开启POP3/SMTP服务时获取的token。以上语句中的内容,可根据需要自行调整,如有疑问可参考后面的备注信息。

3 添加附件

附件信息一般是图片和数据文档,故本文对这两种附件进行阐述,你只需把名字换成你的附件名即可。
  1. image_picture = open('yk2.jpg','rb')                   # 打开附件图片
  2. message_image = MIMEImage(image_picture.read())        # 设置读取获取的二进制数据
  3. #message_image.add_header('Content-ID','<image1>')
  4. message_image["Content-Disposition"] = 'attachment; filename="yk2.jpg"' # 设置附件图片名称
  5. mail.attach(message_image)                             # 把图片添加到邮件中去
  6. image_picture.close()                                  # 关闭刚才打开的图片
  7. mail.attach(message_image)                             # 把图片添加为邮件附件
  8. atta = MIMEText(open('BlackFriday.csv', 'rb').read(),'base64','utf-8') # 添加数据(csv、excel等)附件
  9. atta["Content-Disposition"] = 'attachment; filename="BlackFriday.csv"' # 设置数据(csv、excel等)附件名称
  10. mail.attach(atta)                                      # 把csv附件添加到邮件中去
复制代码
4 发送邮件

邮件正文和附件都设置好后,就可以发送邮件啦,具体语句如下:
  1. smtp = smtplib.SMTP()                     # 创建SMTP对象
  2. smtp.connect(mail_host, 25)               # 设置发件人邮箱的域名和端口,端口地址为25
  3. smtp.set_debuglevel(1)                    # 打印和SMTP服务器交互的所有信息
  4. smtp.login(mail_sender,mail_license)      # 根据邮箱地址和邮箱收起码登录邮箱
  5. smtp.sendmail(mail_sender, mail_receivers, mail.as_string()) # 发送邮件,并设置邮件内容格式为str
  6. now_time = datetime.datetime.now().strftime('%Y-%m-%d')      # 获取当前时间
  7. print(now_time+" 日监控邮件发送成功")                        # 打印某日成功发送邮件记录
  8. smtp.quit()                                                  # 关闭SMTP对象
复制代码
至此,邮件已发送完毕,接着我们来看下邮件发送效果吧。  

5 邮件发送效果

python发送的邮件和我们手动发送的邮件是一样的,具体可见如下图片。

接下来,我们看看如何设置定时任务,每天定时发送邮件吧。 

四、设置定时任务

在前面两节中介绍了如何用python自动发送邮件。本节介绍如何设置定时任务,在固定时间去抓取固定文件中的内容。

1 设置定时任务的具体步骤

首先,点击windows桌面左下角的搜索菜单,输入“控制面板”,就会在最佳匹配中出现控制面板,点击控制面板。

接着,在控制面板的搜索框输入”任务“两个字,就会出现管理工具和计划任务,点击计划任务。

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

点击下一步,设置任务开始的时间,点击下一步,选择启动程序,再点击下一步。接着点击浏览,选择需要定时是python脚本,最后点击完成即可。


2 设置定时任务的教学视频

最后,来看下设置定时任务的教学视频,大家可以根据具体步骤参考视频进行设置。
至此,应用python每天自动发送邮件已讲解完毕,感兴趣的同学可以自己跟着本文,自行实现一遍。
                                                        
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
免责声明
1. 本论坛所提供的信息均来自网络,本网站只提供平台服务,所有账号发表的言论与本网站无关。
2. 其他单位或个人在使用、转载或引用本文时,必须事先获得该帖子作者和本人的同意。
3. 本帖部分内容转载自其他媒体,但并不代表本人赞同其观点和对其真实性负责。
4. 如有侵权,请立即联系,本网站将及时删除相关内容。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表