python 邮件通知程序

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
reload(sys)
from email.MIMEText import MIMEText
import smtplib
sys.setdefaultencoding(‘utf-8‘)
import socket, fcntl, struct

def send_mail(to_list,sub,content):
 mail_host="smtp.163.com"
 mail_user="[email protected]"
 mail_pass="XXXXXXX"
 mail_postfix="163.com"
 me=mail_user+"<"+mail_user+"@"+mail_postfix+">"
 msg = MIMEText(content)
 msg[‘Subject‘] = sub
 msg[‘From‘] = me
 msg[‘To‘] = to_list
 try:
  s = smtplib.SMTP()
  s.connect(mail_host)
  s.login(mail_user,mail_pass)
  s.sendmail(me, to_list, msg.as_string())
  s.close()
  return True
 except Exception, e:
  print str(e)
  return False
def get_local_ip(ifname = ‘eth0‘):
 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 inet = fcntl.ioctl(s.fileno(), 0x8915, struct.pack(‘256s‘, ifname[:15]))
 ret = socket.inet_ntoa(inet[20:24])
 return ret
if sys.argv[1]!="master" and sys.argv[1]!="backup" and sys.argv[1]!="fault":
 sys.exit()
else:
 notify_type = sys.argv[1]

if __name__ == ‘__main__‘:
 strcontent = get_local_ip()+ " " +notify_type+" State is activated, please make sure the HAProxy service running state!"
 mailto_list = [‘[email protected], ]
for mailto in mailto_list:
 send_mail(mailto, "HAProxy State switch alarm", strcontent.encode(‘utf-8‘))

参考南非蚂蚁《高性能Linux服务器构建实战》

时间: 2024-10-13 22:16:08

python 邮件通知程序的相关文章

svn提交时,邮件通知问题解决的经验谈

svn可以实现在commit提交时,使用hook钩子功能,向指定的邮箱发送提交注释comment/log及内容变化的邮件,以方便对之进行监控.具体的描述就是,1.当某个账号提交代码/文档时,使用钩子功能,调用仓库的hooks目录下的post-commit文件,实际上是执行一个shell文件,因此要求此文件具有执行权限2.在shell文件中,通过显式的编码方式运行mailer.py,根据mailer.conf文件中配置的邮件服务器,from address,to address,reply to等

应用崩溃邮件通知

利用 NSSetUncaughtExceptionHandler,当程序异常退出的时候,就给指定的邮箱发送邮件,邮件内容包括发生异常时候的详情.代码如下: void UncaughtExceptionHandler(NSException *exception) { NSArray *arr = [exception callStackSymbols]; NSString *reason = [exception reason]; NSString *name = [exception name

Nagios开发邮件报警程序

当前公司nagios已经正常使用,也能报警,但是邮件报警采用的是sendmail,发件人总是[email protected],收到后经常被加入到邮件中的垃圾箱,并且有些邮箱服务器有反垃圾检测,导致用户接收不到邮件.为解决这个问题,决定自己写一个邮件发送程序.过程如下: 1.开发发送邮件脚本 [[email protected] python]# cat sendmail.py #!/usr/bin/python # -*- coding:utf-8 -*- import smtplib imp

sqlalchemy中使用event设置条件触发短信与邮件通知

一.原因 近期在做短信与邮件通知系统.使用到了这一块.例如,当订单完成以后进行邮件短信的通知.虽然可以采用直接调用接口的方式实现,但有几个原因让我希望使用条件触发的方式 1.由于系统中支持线上线下以及代充值等多种方式,所以在多个地方订单改变状态.这样就让触发通知的代码凌乱分布. 2.系统将来扩建,需要新增加接口.则需要新增加调用的代码. 总而言之,直接调用将会增加维护难度.因此准备在订单的状态首次被置为支付成功时候进行短信与邮件的通知. 二.模块需求 短信与邮件的通知不能影响内部系统的运行,但由

SQL Server自动化运维系列——关于邮件通知那点事(.Net开发人员的福利)

需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 邮件作为一种非常便利的预警实现方式,在及时性和易用性方面也有着不可替代的优点. 所以,在本篇中将详细的分析下在SQL Server中的邮件通知功能及使用方式等. 本篇实现 1.通过SQL Server自带的邮件功能实现运维的预警及检测 2.利用数据库邮件组件代替传统的C#发送邮件的弊端 3.实现Job任务运行状态的检测 4.利用PowerShell实

Jenkins email-ext邮件通知模板

http://blog.csdn.net/houyefeng/article/details/51344337 示例 以html格式发送送如下内容:邮件内容为项目名称.构建次数.触发原因.构建日志前100行.项目url/构建日志url.项目变更日志.测试用例汇总.Job设置中"Content Type"选"Html",将下面模板内容粘贴到"Content"中.Html模板:模板由群友QQ]  TUX(4991727)提供 <!DOCTYPE

自动同步文件并邮件通知

由于访问美国FTP服务器速度比较慢,所以希望有一个工具可以晚上自动同步美国FTP服务器上的文件到Win 2003本地共享盘并邮件提示是否有更新. 所需工具 FreeFileSync 6.11软件(自动同步文件软件) bmail.exe (发送邮件程序或其它同样功能的程序) 1. 首先我们使用FreeFileSync软件来创建一个同步计划,并保存为batch job. 2.写二个Bat脚本,CopyFTPtoShareFolder.bat,这个做为计划任务运行的脚本.FreeFileSync.ba

持续集成之②:整合jenkins与代码质量管理平台Sonar并实现构建失败邮件通知

一:Sonar是什么?Sonar 是一个用于代码质量管理的开放平台,通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如FindBugs,PMD等)直接显示在Web页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理.在对其他工具的支持方面,Sonar 不仅提供了对

jenkins邮件通知插件

说明 Jenkins默认提供了一个邮件通知,能在构建失败.构建不稳定等状态后发送邮件.但是它本身有很多局限性,比如它的邮件通知无法提供详细的邮件内容.无法定义发送邮件的格式.无法定义灵活的邮件接收配置等等.而Jenkins Email Extension Plugin插件允许你自定义邮件通知,比如在发送邮件时你可以自定义发送给谁,发送具体什么内容等等.插件安装请参考上篇博文. 1.默认邮件通知设置 Jenkins的系统设置里,先找到Jenkins Location位置. Jenkins URL: