AI智能
改变未来

Python实现定时发送监控邮件


目录
  • 一、自动定时任务运行详情
  • 二、开启POP3/SMTP服务
  • 三、发送邮件
  • 1 导入库
  • 2 设置邮件内容
  • 3 添加附件
  • 4 发送邮件
  • 5 邮件发送效果
  • 四、设置定时任务
    • 1 设置定时任务的具体步骤
    • 2 设置定时任务的教学视频

    不管是在信贷领域还是支付领域,作为一个风控人员,我们都需要对部署的策略模型进行监控,信贷领域可能还需要对客户的逾期表现进行监控。这时,如果我们能用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 导入库

    import osimport emailimport smtplibimport datetimefrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImagefrom 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替换qqmail_receivers = [\"2275885700@qq.com\",\"wawoxzy@163.com\"]  #收件人邮箱mail = MIMEMultipart(\'related\')              # 设置邮件主体mail[\"From\"] = \"sender_name<2275885700@qq.com>\"           # 设置发送者邮箱mail[\"To\"] = \"receiver_1_name<2275885700@qq.com>,receiver_2_name<wawoxzy@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\',\'<image1>\')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)               # 设置发件人邮箱的域名和端口,端口地址为25smtp.set_debuglevel(1)                    # 打印和SMTP服务器交互的所有信息smtp.login(mail_sender,mail_license)      # 根据邮箱地址和邮箱收起码登录邮箱smtp.sendmail(mail_sender, mail_receivers, mail.as_string()) # 发送邮件,并设置邮件内容格式为strnow_time = datetime.datetime.now().strftime(\'%Y-%m-%d\')      # 获取当前时间print(now_time+\" 日监控邮件发送成功\")                        # 打印某日成功发送邮件记录smtp.quit()                                                  # 关闭SMTP对象

    至此,邮件已发送完毕,接着我们来看下邮件发送效果吧。  

    5 邮件发送效果

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

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

    四、设置定时任务

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

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

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

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

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

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

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

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

    至此,应用python每天自动发送邮件已讲解完毕,感兴趣的同学可以自己跟着本文,自行实现一遍。

    您可能感兴趣的文章:

    • python实现定时发送邮件到指定邮箱
    • python实现定时发送邮件
    • python脚本定时发送邮件
    • Python定时发送天气预报邮件代码实例
    • Python3实现带附件的定时发送邮件功能
    • python定时利用QQ邮件发送天气预报的实例
    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » Python实现定时发送监控邮件