使用VBA脚本通过Outlook发送电子邮件

时间:2015-08-20 03:01:18

标签: vba email outlook

我最近写了一个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进程保持活动状态以实际发送?

我似乎无法想到任何事情,所以所有的帮助都得到了赞赏。

由于

1 个答案:

答案 0 :(得分:0)

类似于Application.Wait,除了没有额外的延迟,也没有等待不够长的可能性。

Dim origSentMailCount as Long

origSentMailCount = objOutlook.GetDefaultFolders(olFolderSentMail).Count

objMail.Send

do until objOutlook.GetDefaultFolders(olFolderSentMail).Count > origSentMailCount
doevents
loop