背景: Sendmail 無法使用外部smtp發郵件,很多程式又标配有sendmail,有些外部smtp比如網易的免費企業郵箱對賬号發信量有限制,是以使用msmtp代替sendmail,既可以不用改動程式,又可以使用外部smtp,而且可以用腳本實作多個賬号随機發送,增加發信量。
1、下載下傳安裝msmtp
wget http://nchc.dl.sourceforge.net/sourceforge/msmtp/msmtp-1.4.17.tar.bz2
如果該位址失效,請到這裡下載下傳 http://download.csdn.net/detail/kyong2008/3626000
tar xvf msmtp-1.4.17.tar.bz2
cd msmtp-1.4.17
./configure --prefix=/usr/local/msmtp
make
make install
2、手動建立配置檔案,輸入外部smtp位址
mkdir –p /usr/local/msmtp/etc
vi /usr/local/msmtp/etc/msmtprc
添加以下内容
account default
host smtp.163.com #你的發送郵件伺服器
port 25
from [email protected] #要從哪個郵箱發出
auth login
tls off
user jinyan2049 #郵箱使用者名
password ******* #郵箱密碼,如果你覺得不安全可以把檔案改為600屬性
logfile /var/log/mmlog
儲存退出。
3、簡單測試一下
/usr/local/msmtp/bin/msmtp [email protected]
hello,test
ctrl d
cat /usr/local/msmtp/msmtp.log 看看有沒有成功。
然後再到QQ郵箱中,看看信收到沒有
4、下面開始安裝 MUTT 如果是CentOS的話直接用yum就好了
yum install mutt
安裝完成後要手動給他建立一個配置檔案,
vim /etc/Muttrc
set sendmail="/usr/local/msmtp/bin/msmtp" #你的msmtp指令路徑
set use_from=yes
set realname="[email protected]"
set editor="vim"
簡單的4行就可以了
好了,讓我們來測試一下吧!
測試一下:echo "test mail" | mutt -s "test" ******@qq.com
5、 建立 zabbix用于發送郵件的腳本,腳本放在什麼位置随便,但是要保證zabbix能找到!
(1)vim /usr/bin/baojing,并寫入如下内容:
#!/bin/bash
echo "$3" | mutt -s "$2" $1 # $3表示郵件内容、$2表示郵件标題、$1表示收件人
(2)chmod a+x /usr/bin/baojing
6、 zabbix配置
(1)建立meida types
1.登入到zabbix,進入“Administration" >> ”Media types",點選右上角“Create Media Type"。 Description填"mediatype-baojing"或其它名稱,Type選擇"Script",Script填”baojing”。
2.點選save儲存
7、建立actions
1.登入到zabbix,進入"Configation" >> "Actions",點選右上角"Create Actions"。輸入Name “action-baojing” ,其它都預設點選右側“Action Operations"下的"New"按鈕,"Operation Type"選擇"Send message","Send Message to"選擇一個或多個要發送消息的使用者組,”Send only to"選擇我們之前新增的mediatype-baojing。
2.點選save儲存
8、zabbix使用者配置
登入到zabbix, 進入"Adimistration" >> "Users",在之前標明要發送消息的組裡的Members欄位裡選擇一個使用者,例如選擇Admin使用者。
在使用者資訊修改界面最下方的”Media"處點選"Add"按鈕。
Type選擇"mediatype-baojing",Send to填入收件人位址,點選Add添加。
點選"Save"儲存配置。
至此配置完成,測試!
不光是zabbix,nagios等監控平台的郵件報警都可以這樣配置。當然轉到139郵箱的話可以收到短信的,會更加及時的收到報警。