【问题标题】:Finding Outlook event triggered by third party email send查找由第三方电子邮件发送触发的 Outlook 事件
【发布时间】:2014-12-31 18:04:02
【问题描述】:

我有一个通过 Outlook 发送电子邮件的第三方软件。它允许我们指定“回复”电子邮件地址,但不能指定“发件人”电子邮件地址。我正在尝试在 VBA 中编写一些东西,当消息来自该第三方软件时会注意到,并在发送电子邮件之前使用“回复”地址作为“发件人”地址。当我使用第三方软件发送电子邮件时,我无法触发任何事件。

如果我使用

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
  MsgBox "Test"
End Sub

当我通过 Outlook 发送电子邮件时它会触发消息框,但第三方软件不会触发。我应该关注另一个事件吗?我正在查看 Application 事件或 MailItem 事件 (http://msdn.microsoft.com/en-us/library/office/dn320237(v=office.15).aspx),但 Send 事件似乎完全合适。我尝试了项目发送事件的示例代码

Public WithEvents myItem As Outlook.MailItem 



Sub SendMyMail() 

 Set myItem = Outlook.CreateItem(olMailItem) 

 myItem.To = "Dan Wilson" 

 myItem.Subject = "Data files information" 

 myItem.Send 

End Sub 



Private Sub myItem_Send(Cancel As Boolean) 

 myItem.ExpiryTime = #2/2/2003 4:00:00 PM# 

End Sub

但即使我通过 Outlook 发送电子邮件也不会触发。在测试之前,我确实尝试过重新启动 Outlook。

这个问题看起来很有希望:How do I trigger a macro to run after a new mail is received in Outlook? 但它涉及为收件箱设置一个事件侦听器。我听说有一种方法可以以某种方式更改设置,以防止第三方邮件被自动发送,并且当发生这种情况时,它们会卡在 Outlook 的草稿文件夹中。我将如何将事件侦听器放在草稿文件夹而不是收件箱上?

【问题讨论】:

  • 有趣的问题。你有没有机会指定这个第三方是什么?
  • 这是 Microsoft Dynamics GP。

标签: vba outlook


【解决方案1】:

Application.ItemSend 事件仅在通过 Outlook 对象模型发送消息时触发。如果其他应用使用扩展 MAPI,则不会触发任何事件。

【讨论】:

  • 没有事件?如果是这种情况,并且我怀疑它确实使用了扩展 MAPI,那么我想我想要做的事情是不可能的。感谢您的信息。
  • 通过在 OutlookSpy 中捕获 OOM 事件来确保情况确实如此(单击应用程序按钮,转到事件选项卡,查看底部的日志)。该应用会在发送消息之前显示消息吗?
猜你喜欢
  • 1970-01-01
  • 2010-10-29
  • 1970-01-01
  • 2010-09-25
  • 1970-01-01
  • 2021-11-03
  • 2018-07-24
  • 1970-01-01
相关资源
最近更新 更多