很多时候需要实现自动邮件发送,例如每天的日志,告警或者其他审计信息。
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 = '123123123123@qq.com'
password = '123123'
toaddrs = ['456456456456@qq.com']
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'] = '123123123123@qq.com'
#接受方信息
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邮箱,会有授权码功能,需要先获取授权码,然后当作密码在脚本中使用。