在outlook中捕获已发送电子邮件的事件

问题描述:

我正在为Outlook插件和 我正在尝试捕获从Outlook发送的邮件事件。 在网络上,我发现了很多SEND电子邮件的示例,但我需要知道发送的电子邮件事件。 有一种方法或过程来钩住这个特定的事件? 谢谢在outlook中捕获已发送电子邮件的事件

有一个变量,其中包含一个布尔值,如果邮件项目发送。 您可以发送邮件并检查布尔值。

mailItem.Send(); 
if (mailItem.Sent) 
{ 
    // Do your thing 
}  
+0

感谢您的回答。 我的目标是采取发送电子邮件的事件,但我无法达成它,因为我不知道该怎么做。有一种检查/测试来有效地尝试我做正确的事情? – OmnipresentPerception 2013-05-02 07:57:00

我想出一个简单可爱的变通方法是,不使用插件

显示用户后,只要勾选MailItem.Sent价值,如果它是假的比你知道的电子邮件不发送关闭,如果它没有价值,这意味着你得到一个错误“已删除项目或删除”,这意味着电子邮件的发送,这就是为什么物体消失

尝试

MailItem.Display(True) 

Try 
    Dim sent As Boolean = MailItem.sent 
    'msg was closed without sending 
Catch ex As Exception 
    'msg was sent 
End Try 
+0

这不起作用 - 消息提交是一个异步过程。该消息将被发送并稍后(秒或甚至分钟)移动到已发送邮件文件夹。 – 2018-01-25 19:59:19

+0

对于我来说,运行良好,当用户关闭邮件没有发送比我仍然有对象和MailItem.sent值是假的 - 但如果用户点击发送,比我松散的对象和MailItem.sent不再存在了 – techground 2018-01-25 20:18:41

+0

该属性存在就好 - 它只是引发异常,因为您不允许对提交的消息进行任何操作。您依赖的行为可以随任何Outlook更新而改变。 – 2018-01-25 22:49:50

使用Application.ItemSend事件。