hlaissy 发表于 2009-7-15 13:44:00

关于选择outlook对话框的代码

下面是用VBS编写的关于QTP自动发送Email的代码:
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(Sttachment <> "") Then
      Mail.Attachments.Add(Attachment)
   End If
   Mail.Send
   ol.Quit
   Set Mail = Nothing
   Set ol = Nothing
End Function

Call SendMail("test@sina.com", "qtTest.name", "qtTest.LastRunResults.Status", "")


当运行完这段代码后,会弹出一个对话框,让你选择是否发送邮件的,请各位大侠帮帮忙,如何编写这个对话框的程序

[ 本帖最后由 hlaissy 于 2009-7-15 13:45 编辑 ]

ls_721521 发表于 2009-7-15 13:47:13

直接用sendkeys 发送回车就行了吧

hlaissy 发表于 2009-7-15 14:02:15

我如何来选择“是”或“否”呢?

shanxi 发表于 2009-7-15 14:06:48

回复 3# 的帖子

Send Tab key

hlaissy 发表于 2009-7-15 15:14:18

谢谢

hlaissy 发表于 2009-7-15 15:55:20

我还是不会写,能帮我写一个吗?谢谢了

xiaoyaoke 发表于 2009-7-15 16:01:53

回复 6# 的帖子

上面说的方法可能不行,这是outlook防脚本发垃圾邮件的一个机制,通过QTP发送的时候会弹出提示,我记得之前遇到时有两种情况,对于office 2007里面的outlook是可以去配置中取消弹出提示框的,对于2003版的outlook,就没有提供取消的方法,要在QTP的外部运行一段代码来取消掉这个弹出提示框

hlaissy 发表于 2009-7-15 16:11:37

代码如何来写?:handshake :handshake :handshake

dreamsea123 发表于 2009-7-15 16:58:07

用spy捕捉一下对话框的属性,用描述性编程,同时加一个判断,若弹出对话框,点击确定,没有弹出,邮件已经发发

hlaissy 发表于 2009-7-16 15:48:26

不行,我用sendkeys写的代码:
Dim Wshshell
Set Wshshell= WScript.CreateObject("WScript.Shell")
Wshshell.AppActivate "Microsoft Office Outlook"
WScript.Sleep 5000
Wshshell.SendKeys "+{TAB}"
WScript.Sleep 2000
Wshshell.SendKeys "~"

当上面的程序run完弹出对话框时,这段代码却不运行。。。

还有就是用QTP扑捉对话框的属性,同样是不能运行。。。

dreamsea123 发表于 2009-7-16 16:20:55

参考一下:[原创]自动点击outlook中安全页面中yes按钮的方法 by风过无息

地址:http://www.51testing.com/?uid-3528-action-viewspace-itemid-97579

dreamsea123 发表于 2009-7-16 16:21:52

上面写的应该很详细

hlaissy 发表于 2009-7-16 17:02:05

我这里弹出的窗口是这样的:


还有我想问你的是fso.SendKeys "a", True中的“a”是什么意思?

hsjzfling 发表于 2009-7-16 18:02:37

回复 1# 的帖子

如果只是想通过QTP发送邮件可以参考如下两种方法

1. 通过CDO.Message
注意需要在代码中填上对应的SMTP Server,Outlook就填自己公司的,可以在Outlook的Email Account信息中查看到Function SendMail(SendFrom, SendTo, Subject, Body)
    Set oMail = CreateObject("CDO.Message")
        oMail.From = SendFrom
    oMail.To = SendTo
    oMail.Subject = Subject
    oMail.Textbody= Body
       
        oMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        oMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = ‘公司的SMTP服务器
        oMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        oMail.Configuration.Fields.Update
       
    oMail.Send

    Set oMail = Nothing

End Function2. 通过CDONTS.NewMail
下面的链接介绍的比较详细
http://blog.csdn.net/KanJingCode/archive/2006/05/17/742030.aspx

ls_721521 发表于 2009-7-16 18:08:26

回复 14# 的帖子

thanks:victory:

xiaoyaoke 发表于 2009-7-17 18:31:41

http://www.advancedqtp.com/knowledge-base/articles/ms-office4/outlook-security-popup/

楼主可以参考下这个帖子~

whoamiyaya 发表于 2009-9-22 14:39:12

我有两个问题想和大家讨论下:
1)我参考了11#和16#的链接里的代码,加到了下面的红色部分,然后在qtp运行,然后那个窗口出来后让你选择yes或者no,然后就停在那里不动了,这是为什么呢?好像没有效果嘛……而且其实我也不太明白这段红色代码的意思,谁能解释一下吗~~谢拉

2) 我一直很好奇这个问题,就是Mail.Subject咯Mail.to咯这种对象或者函数在qtp或者vbs的帮助文档里并搜不到,大家是怎么知道这些函数的呢?包括很多操作excel的也是,我都是网上搜来的,可要是真的想自己写,应该参照什么文档或者什么工具呢?

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(Sttachment <> "") Then
      Mail.Attachments.Add(Attachment)
   End If
   Mail.Send
'   ol.Quit
       

        Set fso = CreateObject("WScript.shell")
        While fso.AppActivate("Microsoft Outlook") =FALSE
                WScript.sleep 1000
        Wend
        fso.SendKeys "a",True
        fso.SendKeys "y",True
        wscript.sleep 7000
        While fso.AppActivate ("Microsoft Outlook") =FALSE
          WScript.sleep 1000
        Wend
        fso.SendKeys "y",True        
        Set Mail = Nothing
        Set ol = Nothing
End Function

Call SendMail("test@sina.com", "qtTest.name", "qtTest.LastRunResults.Status", "")

[ 本帖最后由 whoamiyaya 于 2009-9-22 14:46 编辑 ]
页: [1]
查看完整版本: 关于选择outlook对话框的代码