很多時候需要實現自動郵件發送,例如每天的日誌,告警或者其他審計信息。
python腳本實現發送郵件,crontab定時任務實現定時自動發送。
python腳本如下:
#!/usr/bin/python
#-*-coding:utf-8 -*-
#
import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
if __name__ == '__main__':
fromaddr = '[email protected]'
password = '123123'
toaddrs = ['[email protected]']
content = '附件是昨日慢SQL信息,請查收。'
textApart = MIMEText(content,'plain','utf-8')
excelFile = 'sql.xlsx'
excelApart = MIMEApplication(open(excelFile, 'rb').read())
excelApart.add_header('Content-Disposition', 'attachment', filename=excelFile)
m = MIMEMultipart()
m.attach(textApart)
m.attach(excelApart)
#郵件內容設置
#郵件主題
m['Subject'] = '慢sql信息表'
#發送方信息
m['From'] = '[email protected]'
#接受方信息
m['To'] = ",".join(toaddrs)
try:
server = smtplib.SMTP('smtp.qq.com')
server.login(fromaddr,password)
server.sendmail(fromaddr, toaddrs, m.as_string())
print('success')
server.quit()
except smtplib.SMTPException as e:
print('error:',e) #打印錯誤
值得一提的是,有些郵箱比如qq郵箱,會有授權碼功能,需要先獲取授權碼,然後當作密碼在腳本中使用。