VBscript脚本是黏合剂,与WSH,WMI粘合,功能会更强大。VBscript与批处理的区别,主要就是脚本比批处理更灵活,功能更强大。
编写脚本如下:
Function SendMail(SendCC, SendTo, SendBCC, Subject, Body, Attachment)
Set ol=CreateObject("Outlook.Application")
Set Mail=ol.CreateItem(0)
Mail.to=SendTo
Mail.CC = SendCC
Mail.BCC = SendBCC
Mail.Subject=Subject
Mail.Body=Body
If (Attachment <> "") Then
Mail.Attachments.Add(Attachment)
End If
Mail.Display
Mail.Send
' ol.Quit
' Set Mail = Nothing
' Set ol = Nothing
End Function
保存为SendingEmail.vbs。
在QTP中,调用此函数,即可发邮件。举例:
ExecuteFile "D:/Program Files/Tests/SendingEmail.vbs" 'SendingEmail.vbs脚本所在的地址。
call SendMail("xxcc","xx", "xxbcc","QTPTest", "This is QTP TestReport", "D:/Program Files/Tests/邮件/Res1/Report/Results.xml")
其中,xxcc为发送的cc的人员邮件地址,xx为要发送的人员邮件地址,QTPTest为Subject,This is QTP TestReport为Body,测试结果的测试报告为Attachment。
遇到的问题一:如果是outlook2003,为了安全考虑,调用脚本发送邮件时,会弹出对话框,默认是阻止发送,如果是outlook2007,则在工具/信任中心/编程访问中,勾选从不向我发送可疑警告即可解决此类问题。
遇到的问题二:如果保存SendingEmail.vbs时,记得选择的是ANSI,不能是UNICODE,否则QTP调用时,会出现错误:sendmail 类型不匹配。