您的位置:首页 > 编程语言 > Qt开发

QTP 使用 CDONTS 发送邮件

2010-06-10 15:53 302 查看
在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 "aa@aa.com", "bb@bb.com","Test","Testbody"

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

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

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



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



一切操作完成,再次运行脚本,邮件就可以发送成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: