服务商阿里云
操作系统Centos6.8
由于阿里云把SMTP-25端口禁止使用,即使在安全组里面开通25端口也是无法使用的,于是把python邮件脚本改成SSL协议,端口465
下面是python脚本代码
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
reload(sys)
sys.setdefaultencoding('utf8')
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from subprocess import *
def sendqqmail(username,password,mailfrom,mailto,subject,content):
gserver = 'smtp.xxxx.com' #这个地方填写邮箱,比如smtp.163.com, smtp.aliyun.com
sslPort= 465 #填写端口
try:
msg = MIMEText(unicode(content).encode('utf-8'))
msg['from'] = mailfrom
msg['to'] = mailto
msg['Reply-To'] = mailfrom
msg['Subject'] = subject
smtp = smtplib.SMTP_SSL(gserver,sslPort)
smtp.set_debuglevel(0)
smtp.ehlo()
smtp.login(username,password)
smtp.sendmail(mailfrom, mailto, msg.as_string())
smtp.close()
#smtp = smtplib.SMTP_SSL(smtpHost,sslPort)
#smtp.ehlo()
#smtp.login(username,password)
except Exception,err:
print "Send mail failed. Error: %s" % err
def main():
to=sys.argv[1]
subject=sys.argv[2]
content=sys.argv[3]
#下面是填写邮箱账号密码等,邮箱账户两个是一样的
sendqqmail('
xxxxxxx@aliyun.com','密码','
xxxxxxx@aliyun.com',to,subject,content)
if __name__ == "__main__":
main()
#脚本执行命令为 python 脚本名 目标邮箱 "邮件主题" "邮件内容"
下面是简单的告警脚本,通过这个小例子来实现自动告警
这是个自动检测IP地址是否存活,如果不存活自动发送邮件告警
xxxxx@163.com 这个邮箱地址是你要给谁发送告警消息
/usr/local/sbin/mon/mail/mail.py 这个路径是我自己的python脚本路径,根据自己定义的来执行
#!/bin/bash
a=123.23.11.21
ping -c1 $a >/dev/dull
if (($?!=0))
then
python /usr/local/sbin/mon/mail/mail.py
xxxxx@163.com "$a" "Network inaccessible"
fi
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。