岁月沧桑,物是人非,岁月赋予了我什么:财富?知识?皱纹?生活态度?

QTP自动发送邮件

上一篇 / 下一篇  2012-06-28 09:21:24 / 个人分类:自动化测试

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 l=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 l = Nothing
End Function

' Example 2
Function SendMail(SendFrom, SendTo, Subject, Body)
    Set bjMail=CreateObject("CDONTS.Newmail")
    ObjMail.From = SendFrom
    ObjMail.To = SendTo
    ObjMail.Subject = Subject
    ObjMail.Body = Body
    ObjMail.Send
    Set bjMail = Nothing
End Function

调用脚本 SendMail  "aa@aa.com", "bb@bb.com","Test","Testbody"

执行脚本,检查邮箱是否收到邮件

 

如果邮件顺利收到固然很好,而且这个流程网上也有很多,我也无需再此多说一遍,但是很多时候,事与愿违,并不能顺利收到邮件,经过一步步地分析推理,发现其中更有玄机,这才是我最想分享给大家的:

如果收不到邮件,需要到IIS,SMTP虚拟邮件服务器的属性里面去看一下,安全是否加了允许匿名访问,或者加了来宾用户。

另外到默认的邮件路径下,看一下C:/Inetpub/mailroot/Queue里面是否有违发送的邮件,如果有稍等一下,看是否消失,如果消失;然后再到C:/Inetpub/mailroot//Badmail 查看你的邮件是否还留在此文件夹下,如果有则说明发送失败了。 然后再给mairoot文件夹的访问权限增大,允许普通用户操作。

 一切操作完成,再次运行脚本,邮件就可以发送成功。

 


TAG:

 

评分:0

我来说两句

hwm831002

hwm831002

从今天开始,一步一个脚印,一天一个台阶,提升自我,充实自我!

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 43393
  • 日志数: 51
  • 图片数: 1
  • 文件数: 1
  • 建立时间: 2008-01-21
  • 更新时间: 2012-11-09

RSS订阅

Open Toolbar