很多时候需要实现自动邮件发送,例如每天的日志,告警或者其他审计信息。
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邮箱,会有授权码功能,需要先获取授权码,然后当作密码在脚本中使用。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐