我的情况:发送邮件时的Outlook尚未打开
我试图发送电子邮件在Outlook未打开。如果Outlook正在运行,此代码将起作用。如果Outlook关闭,代码将创建一个不可见的进程,您可以在任务管理器中看到该进程。
代码在.Send
期间遇到错误。它返回运行时错误287.
从我的经验来看,某些VBA方法只有在对象可见或活动时才起作用。
我的工作是在拨打.Send
之前使用.Display(False)
。
调用.Send
后,它立即终止Outlook进程。 (请指出为什么正确的方向。)然后电子邮件卡在发件箱中。
我必须通过调用另一个CreateObject("Outlook.Application")
和周围应用其他工作或者通过发件箱While Outbox.Items.Count > 0
或
循环通过SyncObjects
循环和手动调用.Start
运行发送/接收的发件箱。
我的问题:
有没有办法直接使用.Send
方法,而不是使用,同时还不必打开Outlook变通。
我的代码:
Sub emailer()
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.to = "[email protected]"
.CC = ""
.BCC = ""
.Subject = "This is the Subject line"
.Body = "Hi there"
.Send 'or use .Display
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
尝试把“虽然Outbox.Items.Count> 0”循环到你的代码中的“结束与”行之后 – jsotola