使用sendmail来发邮件
安装sendEmail
sendEmail是一个免费、轻量级、命令行的SMTP邮件客户端。
如果你需要使用命令行方式发送邮件,那么sendEmail是非常完美的选择:使用简单、功能强大。
wget -P /tmp # 安装组件 yum install perl-Net-SSLeay perl-IO-Socket-SSL -y # 解压压缩包,并把命令拷贝到/usr/local/bin下 tar -zxvf /tmp/sendEmail-v1.56.tar.gz -C /tmp cp /tmp/sendEmail-v1.56/sendEmail /usr/local/bin/ chmod +x zabbix:zabbix /usr/local/bin/sendEmail
3. 创建zabbix报警脚本目录
mkdir -p /usr/local/zabbix/alertscripts
chown -R zabbix:zabbix /usr/local/zabbix/alertscripts
4. 修改zabbix服务端配置文件指定脚本目录
vim /usr/local/zabbix/etc/zabbix_server.conf
# 将AlertScriptsPath变量修改为如下,大概在448行左右
AlertScriptsPath=/usr/local/zabbix/alertscripts
5. 测试sendEmail发送邮件(与步骤六二选一)
#命令行测试如下命令:
# sendEmail -f from@163.com -t to@qq.com -s smtp.163.com -u 'test' -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp 'passwd' -m 'test' # 出现一下提示证明命令安装正确:
Dec 24 23:01:59 zabbix sendEmail[3612]: Email was sent successfully! # 收到此提示表示发送成功 # -f from@163.com # 发件人邮箱地址 # -t to@qq.com # 收件人邮箱地址 # -s smtp.163.com # 发件人邮箱的smtp服务器地址 # -u 'test' # 邮件标题 # -o message-content-type=html # 邮件内容格式为html # -o message-charset=utf8 # 邮件内容编码为utf8 # -xu from@163.com # 发件人邮箱登录用户名 # -xp 'passwd' # 发件人邮箱登录密码 # -m 'test' # 邮件内容 # 编写邮件警报脚本 vim /usr/local/zabbix/alertscripes/sendEmail.sh #!/bin/bash to=$1 subject=$2 message=$3 smtp_server="smtp.163.com" /usr/local/bin/sendEmail -f from@163.com -t "$to" -s "$smtp_server" -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp "passwd" -m "$message" chmod +x sendEmail.sh chown zabbix.zabbix sendEmail.sh
6. 使用163代理发送邮件
yum install -y mailx # 在文件最下方加入两行163认证即可 vim /etc/mail.rc # 设置发件人地址,smtp服务器 set from=pyslinux@163.com smtp=smtp.163.com # 设置发件人smtp认证用户名和密码(由于163开启smtp后这里设置的是授权码而非登录密码) set smtp-auth-user=pyslinux@163.com smtp-auth-password=密码 smtp-auth=login # 测试邮件发送 mail -s 'test' xxx@qq.com < /etc/passwd # 编写脚本 vim /usr/local/zabbix/alertscripes/mail.sh #!/bin/bash echo "$3"|mail -s "$2" "$1" chmod +x /usr/local/zabbix/alertscripes/mail.sh