不管是在信貸領域還是支付領域,作為一個風控人員,我們都需要對部署的策略模型進行監控,信貸領域可能還需要對客戶的逾期表現進行監控,這時,如果我們能用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 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<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) # 設定發件人郵箱的域名和埠,埠地址為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腳本,最后點擊完成即可,

??
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
??
你可能感興趣:
用Python繪制皮卡丘
用Python繪制詞云圖
Python人臉識別—我的眼里只有你
Python畫好看的星空圖(唯美的背景)
【Python】情人節表白煙花(帶聲音和文字)
用Python中的py2neo庫操作neo4j,搭建關聯圖譜
Python浪漫表白原始碼合集(愛心、玫瑰花、照片墻、星空下的告白)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/402741.html
標籤:python
上一篇:爬蟲筆記3
下一篇:英雄聯盟Python爬蟲
