Python自動化報表發送

公司的報表做出來以後需要發送給同事,特別是日報,發送頻率高,現在用Python實現自動發送郵件。
利用Python發送郵件時主要藉助smtplib和email兩個模塊,其中smtplib主要用來建立和斷開與服務器連接的工作,而email模塊主要用來設置一些與郵件本身相關的內容,比如收件人、發件人、主題。
不同郵箱的服務器連接地址不一樣,大家根據自己使用的郵箱設置相應的服務器連接。
163 郵箱在國內比較常用,所以這裏以163郵箱爲例給大家演示一下如何利用Python自動發送郵件。
在開始進行正式的代碼編寫之前,需要先登錄163郵箱進行授權碼設置,單擊設置中的POP3/SMTP/MAP,勾選POPISMTP服務和MAP/SMTP服務兩項的複選框,根據提示進行授權碼設置,設置成功後就可以在Pyton中利用授權碼登錄。

代碼如下

import smtplib
from email import encoders
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import parseaddr,formataddr
from email.mime.application import MIMEApplication

#日報的日期,每天修改
n=str(20200508)

#發件人郵箱
asender='阿宇君的發件箱@163.com'
#收件人郵箱
areceiver='阿宇君的收件箱@qq.com'
#抄送人郵箱
acc='[email protected]'

#郵件設置
asubject='這是一份測試郵件1'

#發件人地址
from_addr='阿宇君@163.com'
#郵箱授權碼,非郵箱密碼
password='阿宇君pass123'

#郵箱設置
msg=MIMEMultipart()
msg['Subject']=asubject
msg['to']=areceiver
msg['Cc']=acc
msg['from']='阿宇君' #發件人信息

#郵件正文
boby='你好,這是測試郵件的正文'
#添加郵件正文
msg.attach(MIMEText(boby,'plain','utf-8'))
#添加附件
xlsxpart=MIMEApplication(open('E:/日報/'+n+'/'+n+'.xlsx','rb','rb').read())
xlsxpart.add_header('Content-Disposition',
                   'attachment',
                   filename='日報-'+n+'.xlsx')
msg.attach(xlsxpart)

#設置郵箱服務器和端口
smtp_server='smtp.163.com'
server=smtplib.SMTP(smtp_server,25)
server.set_debuglevel(1)

#登陸郵箱
server.login(from_addr,password)
#發送郵件
server.sendmail(from_addr,
                areceiver.split(',')+acc.split(','),
               msg.as_string())
#斷開服務器連接
server.quit()
print('已發送郵件')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章