一.python邮件发送脚本

1.linux服务器发送邮件,许多人会直接用mail命令发送,虽然可以发送成功,但是许多都会被互联网邮箱当初垃圾邮件处理

2.mutt和msmtp相关于linux下的邮件客户端,和windows上的outlook,foxmail之类有点类似

3.安装mutt和msmtp虽然可以,但是通过python脚本也可以代替,如下

ubuntu@ubuntu:/etc/nagios3/scripts$ cat sendmail

#!/usr/bin/python

import smtplib

import string

import sys

import getopt

def usage():

print """sendmail is a send mail Plugins

Usage:

sendmail [-h|--help][-t|--to][-s|--subject][-m|--message]

Options:

--help|-h)

print sendmail help.

--to|-t)

Sets sendmail to email.

--subject|-s)

Sets the mail subject.

--message|-m)

Sets the mail body

Example:

only one to email  user

./sendmail -t 'eric@nginxs.com' -s 'hello eric' -m 'hello eric,this is sendmail test!

many to email  user

./sendmail -t 'eric@nginxs.com,yangzi@nginxs.com,zhangsan@nginxs.com' -s 'hello eric' -m 'hello eric,this is sendmail test!"""

sys.exit(3)

try:

options,args = getopt.getopt(sys.argv[1:],"ht:s:m:","--help --to= --subject= --message=")

except getopt.GetoptError:

usage()

for name,value in options:

if name in ("-h","--help"):

usage()

if name in ("-t","--to"):

# accept message user

TO = value

TO = TO.split(",")

if name in ("-s","--title"):

SUBJECT = value

if name in ("-m","--message"):

MESSAGE = value

MESSAGE = MESSAGE.split('\\n')

MESSAGE = '\n'.join(MESSAGE)

#smtp HOST

HOST = "smtp.126.com"      (这个是126的smtp服务域名)

#smtp port

PORT = "25"                 (126邮箱smtp端口号)

#FROM mail user

USER = 'Czar_test'      (你注册126邮箱的用户名)

#FROM mail password

PASSWD = 'test123'       (你注册126邮箱的密码)

#FROM EMAIL

FROM = "Czar_test@126.com"   (你的126邮箱地址)

try:

BODY = string.join((

"From: %s" % FROM,

"To: %s" % TO,

"Subject: %s" % SUBJECT,

"",

MESSAGE),"\r\n")

smtp = smtplib.SMTP()

smtp.connect(HOST,PORT)

smtp.login(USER,PASSWD)

smtp.sendmail(FROM,TO,BODY)

smtp.quit()

except:

print "UNKNOWN ERROR"

print "please look help"

print "./sendmail -h"

然后测试发送邮件

ubuntu@ubuntu:/etc/nagios3/scripts$ /etc/nagios3/scripts/sendmail -t "yongkang_tian@126.com" -s "Nagios Test" -m "Hello Wrold"

二.nagios命令文件里面添加代码

ubuntu@ubuntu:/etc/nagios3$ vim commands.cfg

define command{

command_name    notify-host-by-email

command_line    /etc/nagios3/scripts/sendmail  -t $CONTACTEMAIL$ -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" -m "%b" -m "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n"

}

define command{

command_name    notify-service-by-email

command_line    /etc/nagios3/scripts/sendmail -t $CONTACTEMAIL$ -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -m "%b" -m "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n"

}

转载于:https://blog.51cto.com/czar90/1337798

nagios 邮件报警脚本相关推荐

  1. 监听服务端口及邮件报警脚本

    监听端口脚本 vim /root/dkjc.sh#!/bin/bash #name:王康Dk="8000 8080 3306" while : dofor i in $Dkdone ...

  2. zabbix简介及部署安装(邮件报警)

    一.zabbix 简介: zabbix 是完全开源的工具,整合了 cacti 和 nagios 等特性 附:SNMP(udp 161 udp 162) 众多网络工具都支持此协议,比如常见路由交换,常见 ...

  3. zabbix利用mutt和msmtp配置邮件报警

    Mutt安装 yum –y install mutt msmtp安装 yum –y install openssl openssl-devel libntlm libntlm-devel cyrus- ...

  4. zabbix3.0邮件报警

    一.使用外部邮箱地址发送邮件(使用sendmail发送邮件,不能显示内容) 1.安装sendmail.mailx yum install sendmail mailx vim /etc/mail.rc ...

  5. python插件做nagios发报警邮件二

    接上文 python插件做nagios发报警邮件 http://www.nginxs.com/linux/371.html,由于python 传入的参数,python 会自动加 \ ,经过代码测试,代 ...

  6. Nagios监控之8:利用mutt+msmtp实现邮件报警

    使用mutt+msmtp搭建一个邮件客户端,实现利用第三方邮件服务发送邮件. 此功能是在nagios服务正常安装运行的基础上实现的;因此要先安装好基本的nagios运行环境,这个可以参考本人相关的博文 ...

  7. nagios监控mysql服务_nagios监控mysql及邮件报警

    1.使用默认监控命令check_http命令+相关的参数来实现,如下: 在command.cfg添加如下关键词监控命令:check_http_word,参数解析:-I指定IP或者主机名,-u指定URL ...

  8. 阿里云CentOS 7中zabbix4.2配置shell脚本邮件报警

    (1).邮件报警设置 1)安装mailx组件并配置 [root@localhost ~]# yum -y install mailx [root@localhost ~]# vim /etc/mail ...

  9. nagios 163邮件报警

    注:试过用QQ邮件报警,发送不了 1.安装sendMail yum install -y sendmail* 2.测试sendmail 发送邮件 /usr/local/bin/sendEmail –f ...

最新文章

  1. nginx html 替换,Nginx 服务内容替换功能(sub模块)
  2. lepus监控oracle数据库_一文看懂lepus天兔数据库监控系统如何搭建
  3. PHP个人博客项目------切切歆语博客
  4. Python 包管理之 poetry
  5. centos 7 安装golang遇到问题: No package golang available.
  6. Fiddler基本介绍
  7. cnn 示意图_Two-Stream CNN(双流CNN)介绍(NIPS2014)
  8. 试验thrift做后端rpc,nginx做web服务器, python后端php前端
  9. secp256r1 c语言程序,区块链中的数学-secp256k1点压缩和公钥恢复原理
  10. pointer在html作用,html-CSS中的“ cursor:pointer”效果为什么不起作用
  11. Duplicate entry '127' for key 'PRIMARY'
  12. 古董笔记本GTX1050+CUDA9.2+Pytorch安装
  13. html js 生成缩略图,js实现产品缩略图效果
  14. 关闭vscode中的eslint语法检查
  15. mysql 关闭防火墙 命令_linux常用命令和关闭防火墙
  16. Win10专业版错误代码0xc0000225在吗修复?
  17. 真正的朋友与普通的朋友的区别 (转)
  18. VS2015官方下载地址(个人免费版)
  19. Centos7安裝GitHub
  20. Windows 2000/XP的CMD命令教程(命令篇)

热门文章

  1. scala mysql bit_Scala连接mysql数据库
  2. 硕士论文评审记录2021年春季
  3. 什么样的电路仿真软件可以显示电流流动?
  4. loadrunner使用流程_LoadRunner关联函数
  5. internetreadfile读取数据长度为0_Hadoop 读取数据
  6. c++ 图的连通分量是什么_图与图论基本概念(图论算法入门)
  7. android 计算器显示不全,Android5.0 计算器计算结果不准确和结果末尾的多余的‘0’没有省略的解决方法...
  8. nginx lua连接mysql_OpenResty的安装和在nginx中使用lua直接访问mysql达到数据接口的统一...
  9. 嵌入式开发都需要会些什么
  10. java中刷新页面的js,[Java教程]js页面刷新之实现框架内外刷新(整体、局部)