一.sendmail和sendEmail區別
sendmail是一款郵件服務器軟件(MTA),sendEmail是命令行SMTP郵件客戶端(MUA)
二.senEmail安裝
下載地址:http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
#sendEmail解壓后即可使用 wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz -P /download tar xf /download/sendEmail-v1.56.tar.gz -C /download/tmp cp /download/tmp/sendEmail-v1.56/sendEmail /usr/local/bin/
測試能否成功發送郵件
/usr/local/bin/sendEmail -f "xiami@qsquant.com" -t "26?????877@qq.com" -s "smtp.mxhichina.com" -u "myTest" -o message-content-type=html -o message-charset=utf-8 -xu "xiami@qsquant.com" -xp "Q????234@" -m "hello,this is the test contents" #成功后提示下列內容
Aug 24 14:50:26 sysqsquantop009 sendEmail[12003]: Email was sent successfully!
*163郵箱、qq郵箱默認沒有開啟pop3/smtp/imap服務,若發件端為163或qq,執行將會出錯,請先開啟pop3/smtp/imap服務后再嘗試
命令說明
/usr/local/bin/sendEmail 命令主程序 -f ttlsafrom@163.com 發件人郵箱 -s smtp.163.com 發件人郵箱的smtp服務器 -u "我是郵件主題" 郵件的標題 -o message-content-type=html 郵件內容的格式,html表示它是html格式 -o message-charset=utf8 郵件內容編碼 -xu ttlsafrom@163.com 發件人郵箱的用戶名 -xp 123456 發件人郵箱密碼 -m "我是郵件內容" 郵件的具體內容 --help 使用命令幫助
三.編寫報警郵件發送腳本
#!/bin/bash #export LANG=zh_CN.UTF-8 to=$1 subject=$2 iconv -f UTF-8 -t GB2312 $subject > $subject #解決foxmail收郵件的時候中文標題亂碼 body=$3 from=xiami@qsquant.com smtp=smtp.mxhichina.com passwd=Q????234@ /usr/local/bin/sendEmail -f "$from" -t "$to" -s "$smtp" -u "$subject" -o message-content-type=html -o message-charset=utf-8 -xu "$from" -xp "$passwd" -m "$body"
#chmod +x /opt/alertscripts/sendEmail.sh
四.配置zabbix
4.1 創建一個告警動作(參考筆者上一篇博客第七步http://www.cnblogs.com/xiami-xm/p/7323926.html)
第一步:創建告警媒介操作稍有不同,不用設置smtp服務器,直接用腳本實現

4.2 設置執行腳本路徑
vim /usr/local/etc/zabbix_server.conf AlertScriptsPath=/opt/alertscripts
#重啟zabbix服務
#ps -ef |grep zabbix_server|awk '{print $2}'|xargs kill -9
#/usr/local/sbin/zabbix_server
五.測試
接收的告警郵件內容不換行怎么辦?
sendEmail.sh腳本指定格式是html,所以用<br/>標簽進行換行

嫌英文別扭的可以改為中文:
====================================================
# 默認接收人:
故障{TRIGGER.STATUS},服務器【{HOST.NAME1}】發生【 {TRIGGER.NAME}】故障!
====================================================
# 默認信息:
告警主機:{HOST.NAME1}<br/>
告警時間:{EVENT.DATE} {EVENT.TIME}<br/>
告警等級:{TRIGGER.SEVERITY}<br/>
告警信息: {TRIGGER.NAME}<br/>
告警項目:{TRIGGER.KEY1}<br/>
問題詳情:{ITEM.NAME}:{ITEM.VALUE}<br/>
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}<br/>
事件ID:{EVENT.ID}<br/>
====================================================
# 恢復主旨:
恢復{TRIGGER.STATUS},服務器【{HOST.NAME1}】故障【 {TRIGGER.NAME}】已恢復!
====================================================
# 恢復信息:
告警主機:{HOST.NAME1}<br/>
告警時間:{EVENT.DATE} {EVENT.TIME}<br/>
告警等級:{TRIGGER.SEVERITY}<br/>
告警信息: {TRIGGER.NAME}<br/>
告警項目:{TRIGGER.KEY1}<br/>
問題詳情:{ITEM.NAME}:{ITEM.VALUE}<br/>
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}<br/>
事件ID:{EVENT.ID}<br/>
