1.下载安装sendEmail-v1.56:
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar -zxvf sendEmail-v1.56.tar.gz
cd sendEmail-v1.56
/bin/cp -avf sendEmail /usr/local/bin/sendEmail
chmod +x /usr/local/bin/sendEmail
2.发送HTML邮件的脚本sendEmail.sh
根据实际情况进行配置。
#!/bin/bash
SMTP_server='smtp.abc.123.com' # 配置SMTP服务器
username='123@abc.com' # 用户名
password='123456789' # 密码
to_email_address="$1" # 收件人Email地址,zabbix传入的第一个参数
message_subject_utf8="$2" # 邮件标题,zabbix传入的第二个参数
message_body_utf8="$3" # 邮件内容,zabbix传入的第三个参数
# 转换邮件标题为GB2312,解决邮件标题含有中文,收到邮件显示乱码的问题。
message_subject_gb2312=`iconv -t GB2312 -f UTF-8 << EOF
$message_subject_utf8
EOF`
[ $? -eq 0 ] && message_subject="$message_subject_gb2312" || message_subject="$message_subject_utf8"
/usr/local/bin/sendEmail -s "$SMTP_server" -xu "$username" -xp "$password" -f "123 <123@abc.com>" -t "$to_email_address" -u "$message_subject" -o message-content-type=html -o message-charset=utf8 -o tls=no -m "$message_body_utf8" >> /tmp/mailtmp.txt
其中:
-f "123 <123@abc.com>" #设置显示的发件人名称为123
-o message-content-type=html #设置发送的邮件内容为html形式
-o message-charset=utf8 #设置内容的字符编码为UTF-8
-o tls=no #由于在CentOS 7下perl的版本为5.16,而centos6.5的是5.10,解决perl版本不兼容问题
3.修改脚本权限
将其放置在告警脚本的路径下(通常是/usr/lib/zabbix/alertscripts)并修改权限,简单点如下:
chmod 777 sendEmail.sh
4.zabbix控制台配置
①“管理”----->“报警媒介类型”----->“创建媒体类型” 新建一个报警媒介。
②“Message templates” 配置告警或恢复的HTML邮件样式。