python程序发送服务器状态信息报警邮件(带多类型附件)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python程序发送服务器状态信息报警邮件(带多类型附件)相关的知识,希望对你有一定的参考价值。

     最近为了加强服务器监管信息,于是为所有服务器配置邮件增设报警监测功能,LINUX服务器可以使用SHELL即可轻松解决,但是为了通用性(还有部分WINDOWS系统服务器),后来改为使用Python程序实现其功能。现将邮件部分代码分享其实现过程的简单思路:

程序支持发送多种类型附件邮件:代码如下

#!/usr/bin/python
#coding: utf-8
#author by jerry 2017.1
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import string
from email.parser import Parser
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
host = "baidu.com"
sender = "[email protected]"
receivers = "[email protected]"
user="username"
authcode="password"
mybody="this is body content test."
subject="jerry‘s test"
message=MIMEMultipart()
# 邮件正文添加
mybody = MIMEText("good,send mail ok")
message.attach(mybody)
#---这是附件部分---
att1 =MIMEApplication(open(‘IDC server Reports.xls‘,‘rb‘).read(),_charset=‘utf-8‘)
att1.add_header(‘Content-Disposition‘, ‘attachment‘, filename="IDC server Reports.xls")
message.attach(att1)
att1=MIMEApplication (open(‘domain.txt‘,‘rb‘).read())
att1.add_header(‘Content-Disposition‘, ‘attachment‘, filename="domain.txt")
message.attach(att1)
att1=MIMEApplication (open(‘test.rar‘,‘rb‘).read())
att1.add_header(‘Content-Disposition‘, ‘attachment‘, filename="test.rar")
message.attach(att1)

#整合
headers = Parser().parsestr(‘From: [email protected]\n‘
‘To: [email protected]\n‘
‘Subject:%s‘ % subject +‘\n‘
‘%s‘% message +‘\n‘
)
try:
server = smtplib.SMTP(host)
server.login(user,authcode) #远程smtp主机方法。引号中是帐号和密码
server.sendmail(sender,receivers,headers.as_string())
server.quit() #断开smtp服务器
print ("Mail sent successfully")
except smtplib.SMTPException as e:
print(e)
print ("Mail sendfail!")

技术分享图片

以上是关于python程序发送服务器状态信息报警邮件(带多类型附件)的主要内容,如果未能解决你的问题,请参考以下文章

05zabbix邮件报警

Android 调用系统Email发送带多附件的邮件

怎样清空zabbix里面未发送的邮件

zabbix设置邮件发送报警

利用python3监控服务器状态进行邮件报警

Python通过smtp服务发送电子邮件给指定用户(适用于Zabbix邮件报警)