51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2637|回复: 3
打印 上一主题 下一主题

[原创] 在win7系统下,QTP自动化测试,怎样通过vbs脚本自动发送邮件

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-4-28 17:01:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
'---------------------------------------------------------------------------------
'函数名称 : SendMail
'函数功能 : 自动发送邮件功能
'函数输入:   SendTo----收件人,多个收件人可使用";"隔开
'                        MailTopic----邮件主题
'                        MailBody----邮件内容,此处内容格式为Html
'                        MailAttachment---邮件附件,多个附件可使用";"隔开
'函数输出:  Boolean,邮件是否发送成功   
'---------------------------------------------------------------------------------
Function SendMail(SendFrom,Password,SendTo,MailTopic,MailBody,MailAttachment)
        'On error resume next
        MS_Space = "http://schemas.microsoft.com/cdo/configuration/"
        Set Email = CreateObject("CDO.Message")
        Email.BodyPart.Charset = "GBK"
        Email.From = SendFrom
        Email.To = SendTo
        Email.Subject = MailTopic
        Email.Htmlbody = MailBody
        If MailAttachment <> "" Then
                For i=0 to Ubound(Split(MailAttachment,";"))
                        Email.AddAttachment Split(MailAttachment,";")(i)
                Next
        End If
        With Email.Configuration.Fields
                .Item(MS_Space&"sendusing") = 2
                .Item(MS_Space&"smtpserver") = "smtp."&Split(SendFrom,"@",-1, vbTextCompare)(1)
                .Item(MS_Space&"smtpserverport") = 25
                .Item(MS_Space&"smtpauthenticate") = 1
                .Item(MS_Space&"sendusername") =Split(SendFrom,"@",-1,vbTextCompare)(0)
                .Item(MS_Space&"sendpassword") = Password
                .Update
        End With
        Err.clear
        Email.Send
        If Err.number<>0 Then
                SendMail=False  
        Else
                SendMail=True
        End If
        Set Email=Nothing
End Function
这个方法之前在xp系统下是可以使用的,但是装了win7系统后就不可以用了,应该是COM组件有的方法不支持,求能够发送邮件的方法,我是菜鸟,希望大家指教,非常感谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2012-4-29 14:59:35 | 只看该作者
不是创建outlook.application么
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2012-5-2 11:48:50 | 只看该作者
outlook.application会有安全验证的问题,Outlook 2007以后就比较麻烦了,现在用CDO.Message较多。
我这边是win7+outlook2010,用这段代码是没有问题的
如果不成功的话,看下报错信息是什么
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2012-5-13 16:14:34 | 只看该作者
回复 2# SexyCat_1113


    通过微软的outlook应该是可以的,但有其局限性,当时在win7系统下使用的时候,是".后面的方法不支持"
With Email.Configuration.Fields
                .Item(MS_Space&"sendusing") = 2
                .Item(MS_Space&"smtpserver") = "smtp."&Split(SendFrom,"@",-1, vbTextCompare)(1)
                .Item(MS_Space&"smtpserverport") = 25
                .Item(MS_Space&"smtpauthenticate") = 1
                .Item(MS_Space&"sendusername") =Split(SendFrom,"@",-1,vbTextCompare)(0)
                .Item(MS_Space&"sendpassword") = Password
                .Update
求高手帮我看看在win7系统下咋怎?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-20 14:55 , Processed in 0.069821 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表