第三方软件sendEmail.

我用的QQ邮箱

这里邮件服务器的地址为smtp.qq.com

用来发邮件的帐号857474360@qq.com

SMTP验证的用户名 857474360 密码:不便透露,哈哈

以下就来介绍一下sendEmail这个软件的使用.

sendEmail的主页http://caspian.dotconf.net/menu/Software/SendEmail/

软件十分小,是一个通过命令来发smtp邮件的程序.安装也十分简单(查看其README文件即可).

解压缩tar –zxvf sendEmail-v1.55.tar.gz

cd sendEmail-v1.55

将可执行程序复制cp sendEmail /bin

然后给确认确实它具有执行权限

ll /bin/sendEmail

这样程序就装好了,使用也很简单.直接运行sendEmail就会显示详细的用法

先看一个典型的例子,仅仅是例子,看sendEmail的用法

/usr/local/bin/sendEmail –f nagios@test.com –t yahoon@test.com –s mail.test.com –u “from nagios” –xu nagios –xp p#3isoda –m happy

解释:

-f 表示发送者的邮箱

-t 表示接收者的邮箱

-s 表示SMTP服务器的域名或者ip

-u 表示邮件的主题

-xu 表示SMTP验证的用户名

-xp 表示SMTP验证的密码(注意,这个密码貌似有限制,例如我用d!5neyland就不能被正确识别)

-m 表示邮件的内容

如果你不带-m参数的话,就会提示你自行输入

Reading message body from STDIN because the ‘-m’ option was not used.

If you are manually typing in a message:

- First line must be received within 60 seconds.

- End manual input with a CTRL-D on its own line

输入完成后使用CTRL-D来结束

当然我们也可以将一个文件的内容作为邮件的正文发出去的

那么就可以使用:

cat 文件名| /usr/local/bin/sendEmail –f nagios@test.com –t yahoon@test.com –s mail.test.com –u “from nagios” –xu nagios –xp p#3isoda

有关sendEmail的用法就讲到这里

既然nagios要使用sendEmail来发警告邮件,那么就要修改commands.cfg中关于发邮件的命令的定义,我们现在来修改notify-by-email这个命令,如下(注意其中粗体的部分)

用nconf修改以下2个命令,大家根据实际情况改吧,别发我邮箱里面了,受不了。

notify-host-by-email

改为

/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/sendEmail -f 857474360@qq.com -t $CONTACTEMAIL$ -s smtp.qq.com -u "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" -xu 857474360 -xp 输入密码

notify-service-by-email

修改为:

/usr/bin/printf "%b" "***** 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" | /bin/sendEmail -f 857474360@qq.com -t $CONTACTEMAIL$ -s smtp.qq.com -u "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -xu 857474360 -xp 输入密码

改完后,用nconf 重启nagios生效