【问题标题】:Sending Automated Email from Access VBA through Outlook通过 Outlook 从 Access VBA 发送自动电子邮件
【发布时间】:2013-10-15 21:29:38
【问题描述】:

好的,所以我一直在将创可贴放在创可贴之上,通过简单的 sn-p 代码来获取要发送的电子邮件。我一直在尝试做的是通过 Outlook 发送一封电子邮件。我的第一个问题是runtime object define 287,位于以下行:

Set appOutlookRec = appOutlookMsg.Recipients.Add

为了反驳我添加的:

Set objNS = appOutlook.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)

这就停止了。现在电子邮件将形成,我可以使用.display 来查看我的电子邮件,但是当我尝试使用.send 时,Outlook 实例会在电子邮件实际发送之前关闭。

为了反驳我强制打开 Outlook,但我想检查一个实例是否已经打开。打开我使用的收件箱:

Set appOutlook = CreateObject("Outlook.Application")
Set objNS = appOutlook.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
olFolder.Display

我是否过度复杂了自动化过程?或者我是否走在正确的道路上,有人可以帮助检查是否在资源管理器窗口中打开了 Outlook 实例?

谢谢

更新

Const olMailItem = 0
Const olTo = 1
Const olCC = 2
Const olFolderInbox = 6
Dim appOutlook As Object
Dim appOutlookMsg As Object
Dim appOutlookRec As Object
Dim objNS As Object
Dim olFolder As Object

Set appOutlook = CreateObject("Outlook.Application")
Set objNS = appOutlook.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
olFolder.Display

'Create a new empty email message
Set appOutlookMsg = appOutlook.CreateItem(olMailItem)

With appOutlookMsg
Set appOutlookRec = appOutlookMsg.Recipients.Add("....@gmail.com")
    appOutlookRec.Type = olTo
    .Subject = "Testing Closed Tickets"
    .Body = "This is just a test."
    '.Display
    .Send
End With

Set appOutlookMsg = Nothing
Set appOutlook = Nothing
Set appOutlookRec = Nothing

【问题讨论】:

  • 你试过.Save.Send之前的电子邮件吗?
  • 好消息(但奇怪)! Outlook 是唯一的 Office 应用程序,= CreateObject("Outlook.Application") 将在其不存在时创建实例使用现有实例(如果 Outlook 已在运行)。
  • 你能把你的整个代码贴出来吗?您是从 Outlook 还是其他来源(我假设是 MS Access)运行此代码?通过在 Access 中引用 Outlook 运行时库,您可以让生活变得更轻松
  • 我要提到@tbur,我以为我在其他地方读过,但正在尝试验证:) PowerPoint 也是如此。
  • @DavidZemens 效果很好。现在我不必使用olFolder.Display 在资源管理器中打开实例。如果你真的想把它写成答案,我很乐意接受。

标签: vba ms-access outlook-2010


【解决方案1】:

我之前遇到过类似的情况,我认为通常可以通过在发送之前保存电子邮件来避免错误:

appOutlookMsg.Save
appOutlookMsg.Send

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-11
    • 2021-12-29
    • 2023-01-07
    • 2011-09-28
    • 2020-05-16
    • 1970-01-01
    • 2013-08-01
    相关资源
    最近更新 更多