在QTP中可以outlook 和 cdonts發送郵件,但是使用Outlook 需要在運行QTP的點腦安裝Outlook,而且發送時要打開Outlook還會出現一個對話框,要求點擊確認,無法實現真正的自動發送,所以本人還是推薦使用CDONTS來發送郵件。
CDONTS EMail是IIS提供的組件。使用這個組件有兩個前提:
1. 系統安裝並啓動了SMTP服務
2. CDONTS.dll被註冊到系統中(系統默認沒有註冊這個組件,從網上該組件並RegSvr32命令註冊即可)
CDONTS安裝方法:
Step1: 將該文件拷貝至 %SystemRoot%//System32 下;
Step2: 開始 -> 運行 -> Regsvr32 cdonts.dll;
Step3: 確認
然後輸入腳本
Function SendMail(SendTo, Subject, Body, Attachment)
Set ol=CreateObject("Outlook.Application")
Set Mail=ol.CreateItem(0)
Mail.to=SendTo
Mail.Subject=Subject
Mail.Body=Body
If (Attachment <> "") Then
Mail.Attachments.Add(Attachment)
End If
Mail.Send
ol.Quit
Set Mail = Nothing
Set ol = Nothing
End Function
' Example 2
Function SendMail(SendFrom, SendTo, Subject, Body)
Set objMail=CreateObject("CDONTS.Newmail")
ObjMail.From = SendFrom
ObjMail.To = SendTo
ObjMail.Subject = Subject
ObjMail.Body = Body
ObjMail.Send
Set objMail = Nothing
End Function
調用腳本 SendMail "[email protected]", "[email protected]","Test","Testbody"
執行腳本,檢查郵箱是否收到郵件
如果郵件順利收到固然很好,而且這個流程網上也有很多,我也無需再此多說一遍,但是很多時候,事與願違,並不能順利收到郵件,經過一步步地分析推理,發現其中更有玄機,這纔是我最想分享給大家的:
如果收不到郵件,需要到IIS,SMTP虛擬郵件服務器的屬性裏面去看一下,安全是否加了允許匿名訪問,或者加了來賓用戶。
另外到默認的郵件路徑下,看一下C:/Inetpub/mailroot/Queue裏面是否有違發送的郵件,如果有稍等一下,看是否消失,如果消失;然後再到C:/Inetpub/mailroot//Badmail 查看你的郵件是否還留在此文件夾下,如果有則說明發送失敗了。 然後再給mairoot文件夾的訪問權限增大,允許普通用戶操作。
一切操作完成,再次運行腳本,郵件就可以發送成功。