我最近写了一个VBScript来使用Outlook发送电子邮件。一切都很好,直到它到达发送点。我假设因为它只打开一条消息,并且因为消息已发送...窗口关闭,Outlook被杀死。
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
objMail.Display 'To display message
objMail.Recipients.Add ("address@example.com")
objMail.Subject = "Mail Subject"
objMail.Body = "This is Email Body"
objMail.Send
objOutlook.Quit
Set objMail = Nothing
Set objOutlook = Nothing
所有信息都正确输入电子邮件。但是,一旦执行了send命令,消息就会被放入发件箱中,除非事后手动打开Outlook,否则永远不会发送消息。有没有一种方法可以用来在结束脚本之前运行发送/接收?或者延迟使Outlook进程保持活动状态以实际发送?
我似乎无法想到任何事情,所以所有的帮助都得到了赞赏。
由于
答案 0 :(得分:0)
类似于Application.Wait,除了没有额外的延迟,也没有等待不够长的可能性。
Dim origSentMailCount as Long
origSentMailCount = objOutlook.GetDefaultFolders(olFolderSentMail).Count
objMail.Send
do until objOutlook.GetDefaultFolders(olFolderSentMail).Count > origSentMailCount
doevents
loop