51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2864|回复: 5
打印 上一主题 下一主题

[原创] qtp调用外部vbs,报错,有人知道是怎么回事吗

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-11-26 15:07:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在 files-setting-resources里加了vbs的脚本,但是qtp运行的时候,每次到最后一行就报错:类型不匹配,知道是什么原因吗?

然后qtp代码:

SendTo="test@test.com"

Subject="test"

Body="test"

Attachment="d:\test.xls"


Call SendMail (SendTo,Subject,Body,Attachment)

--------------------vb脚本---------------------------------

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
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2010-11-26 16:09:52 | 只看该作者
没人回答吗,随便说点 提供点思路也好啊
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-11-27 19:12:35 | 只看该作者
是不是 关于outlook 认证的问题,
outlook需要登录

调用方法是否有问题?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-11-27 21:37:50 | 只看该作者
也可以用CDO对象来发送Email,参考:
Function SendMail(buildversion , buildlog ,FxCop_Result,MetricsReport,Simian_ResultFile, deBugbuildResult)
  Set oMessage=WScript.CreateObject("CDO.Message")
  Set oConf=WScript.CreateObject("CDO.Configuration")
  '创建CDO.Configuration对象后,需要设置邮件服务器的端口、用户帐号等相关信息
  oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing")=2
  oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver")=EmailServer
  oConf.Fields("http://schemas.microsoft.com/cdo/configuration/serverport")=25
  oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate")=1
  oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")=Eamil_sendusername
  oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")=Email_sendpassword
  oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")=0
  oConf.Fields.Update()
         
   '通过CDO的 Message对象设置邮件主题、附件、发送人等信息
   oMessage.Configuration = oConf
   oMessage.To = Email_ReceiveAddress
   oMessage.From = Email_SendAddress
   oMessage.Subject = buildversion & "构建结果"
   oMessage.AddAttachment( buildlog )
   if (FxCop_Result<>"") Then
           oMessage.AddAttachment( FxCop_Result )
   End If       
   if (MetricsReport<>"") Then
           oMessage.AddAttachment( MetricsReport )
   End If       
   if (Simian_ResultFile<>"") Then
           oMessage.AddAttachment( Simian_ResultFile )   
   End If       
   
         If deBugbuildResult = true Then
                 TextBody = buildversion & "编译成功!"
   Else
                 TextBody = buildversion & "编译失败!"
   End If
          
   oMessage.TextBody = TextBody
   oMessage.Send()
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-11-28 13:24:28 | 只看该作者
楼上达人,学习了:)

Function SendMail(mailFrom,mailSmtp,sendUserName,sendUserPassword,mailTo,mailSubject,mailBody,mailAttachment)

        Const conSendUsing         ="http://schemas.microsoft.com/cdo/configuration/sendusing"
        Const conServer            ="http://schemas.microsoft.com/cdo/configuration/smtpserver"
        Const conServerPort        ="http://schemas.microsoft.com/cdo/configuration/smtpserverport"
        Const conConnectionTimeout ="http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
        Const conAuthenticate      ="http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
        Const conUsessl            ="http://schemas.microsoft.com/cdo/configuration/smtpusessl"
        Const conSendUserName      ="http://schemas.microsoft.com/cdo/configuration/sendusername"
        Const conSendPassword      ="http://schemas.microsoft.com/cdo/configuration/sendpassword"

        Set objMessage = CreateObject("CDO.Message")
        Set objConfig = CreateObject("CDO.Configuration")
        Set Fields = objConfig.Fields
        Set objMessage.Configuration = objConfig

        With Fields
                .Item(conSendUsing) = 2                           '2为使用外部SMTP服务器,不要更改
                .Item(conServer) = mailSmtp                       '改成可用的外部邮件服务器域名
                .Item(conServerPort) = 25                                '外部SMTP服务器端口,gmail使用465,其它一般使用25
                .Item(conConnectionTimeout) = 20                  '设定连接超时,单位秒
                .Item(conUsessl) = False                           '是否使用SSL安全套接字,gmail为true,其它一般false
                .Item(conAuthenticate) = 1                        '1为发送邮件需要认证,通常不要更改
                .Item(conSendUserName) = sendUserName
                .Item(conSendPassword) = sendUserPassword
                .Update
        End With

        With objMessage
                .To = Trim(mailTo)                                                                                '改成接收者的邮件地址
                .From = mailFrom                                                                                         '改成发送人的邮件地址,要和上面的邮件系统相同
                .Subject = Trim(mailSubject)                                         '标题
                .HTMLBody =  "<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=Shift_JIS"" /></head>"&_
                                             "<body>"&mailBody&"</body></html>" 'HTML邮件正文
                .HTMLBodyPart.Charset="Shift_JIS" '//邮件HTML格式编码
                If         Trim(mailAttachment) <> "" Then
                        .AddAttachment  mailAttachment                         '邮件附件
                End If
                .Send
        End With

        Set objMessage = Nothing
        Set objConfig = Nothing
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-11-29 11:30:43 | 只看该作者
修复安装后问题解决,估计是qtp内部问题,谢谢ls几位的回答
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 19:02 , Processed in 0.076996 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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