Tomcat監控系列——發送郵件

上篇中有提到要實現發送郵件功能,且發送郵件是當監控軟件發現異常時調用restartServer.bat文件來執行指定命令而實現的發送操作。在選擇實現時該功能時我首先想到了命令行發郵件的一個不錯的工具Blat,使用該工具實現發郵件非常簡單,現做簡要介紹。

一、實現blat發送郵件

下載blat可以去官網:http://www.blat.net/  當然你也可以去網上百度下,也會有大把下載資源。

下載之後解壓找到如下圖幾個文件,把它們放到C:\WINDOWS\system32下面,這樣做爲了方便通過命令行直接調用。


放到指定路徑後打開一個命令行窗口,輸入blat會輸出如下信息,說明blat可以使用了。

下面就使用blat來發郵件了,首先是一個批處理:

sendmail.bat:

@echo off
:::::::::::::: 參數設置::::::::::::::
set [email protected]【發送方地址】
set user=test【發送方賬號】
set pass=testpwd【發送方密碼】
set tf=mail_list.txt【收件人列表】
set subj=這是郵件標題哈【郵件標題】
set mail=mail_body.txt【郵件內容】
set attach=c:\sendmail\fj.txt【郵件附件】
set server=smtp.163.com【發送服務器】
set debug=-debug -log blat.log -timestamp【日誌】
::::::::::::::: 執行blat :::::::::::::::
blat %mail% -tf %tf% -base64 -charset UTF8 -subject %subj% -attach "%attach%" -server %
server% -f %from% -u %user% -pw %pass% %debug%
mail_list.txt:

[email protected]
[email protected]

mail_body.txt:

This email come from [email protected],Congratulations!


fj.txt:

i am fj!  測試中文


注意事項:1、使用的郵箱要支持smtp,像163默認是沒有開啓smtp的,需要去配置中開啓下。

2、發送方地址和發送方賬號注意區分開來,發送方賬號一定不要帶形如:“@163.com“的後綴,否則將報登錄失敗的錯誤。

3、上面的郵箱地址密碼都是我隨意寫的,實際使用時請使用正確的郵箱和密碼等信息。


完成以上信息的配置後雙擊sendmail.bat,如果沒有報出錯誤信息,那就可以看下你的收件箱了,應該已收到剛纔發送的郵件了。

二、用VBS腳本發送郵件

現在通過blat發郵件是沒問題的,但測試時發現通過上文介紹的Tomcatmoni監控助手無法調用sendmail.bat這個文件,調用後不能正常執行,但如果把這個bat文件換成其它命令就可以正常執行。後來嘗試了好久還是沒能實現通過TomcatMoni監控助手調用sendmail.bat正常發送郵件。但自己手動雙擊sendmail.bat確實可以發送郵件。於是又找到了接下來要介紹的第二種發送郵件的方式,通過vbs腳本來發送,樣例如下:

sendmail.vbs

NameSpace = "http://schemas.microsoft.com/cdo/configuration/"
set Email = CreateObject("CDO.Message")
Email.From = "[email protected]" 【發送方地址】
Email.To = "[email protected]" 【接收方地址】
Email.Subject = "這是郵件標題"【郵件標題】
x="C:\TomcatMonitor\sendmail\mail_body.txt" 【郵件正文】
y="C:\TomcatMonitor\sendmail\fj.txt"【附件】
Set fso=CreateObject("Scripting.FileSystemObject")
Set myfile=fso.OpenTextFile(x,1,Ture)
c=myfile.readall
myfile.Close
Email.Textbody = c
Email.AddAttachment y
with Email.Configuration.Fields
.Item(NameSpace&"sendusing") = 2
.Item(NameSpace&"smtpserver") = "smtp.163.com"【郵件服務器地址】
.Item(NameSpace&"smtpserverport") = 25
.Item(NameSpace&"smtpauthenticate") = 1
.Item(NameSpace&"sendusername") = "sendtest" 【發送方賬號】
.Item(NameSpace&"sendpassword") = ""sendtestpwd" 【密碼】
.Update
end with
Email.Send
Set Email=Nothing


雙擊該vbs腳本可以直接發送郵件,在批處理中調用的樣例如下:

restartServer.bat:

@rem 這裏可以寫您自己需要執行的命令

@rem 重啓tomcat的命令

@rem 發出郵件通知
wscript C:\TomcatMonitor\sendmail\sendmail.vbs


修改TomcatMoni監控助手的conf.properties文件,把服務器異常時調用的啓動命令設置爲該批處理文件,當服務器異常時你就可以收到郵件了。當然如果你的郵箱開通了郵件通知服務(如:139郵箱)就可以實時收到短信通知了。

好了,今天就先介紹到這裏,後續會繼續完善其它需求。

聲明:本人是兼職做服務器維護這塊工作,非專業人員,如有描述不當之處,歡迎留言指出,磚神們請輕拍哦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章