0

有没有办法在发件箱文件夹中读取电子邮件的里程字段而不会导致电子邮件卡在发件箱中?

在我的应用程序范围内,重新发送所有电子邮件不是一个选项。我必须阅读所有电子邮件的字段值,以决定是否停止邮件并重新发送。

如果我修改了我没有修改的邮件,要求重新发送似乎是合理的。我只是在读它。

我以为我正在通过将对象读取为类型“对象”而不是“mailitem”来找到解决方案,但结果证明这是一个红鲱鱼。

对于简单的 MAPI 电子邮件不会触发应用程序 send_mail 事件的问题,读取该属性是我非常简单且可靠的解决方法。不幸的是,它打破了其他电子邮件的策略。

编辑
按要求。ItemSend 并不总是开火是我无法企及的,不是吗?

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    On Error Resume Next

    InitEvents True    'Reinstantiate the custom handlers if necessary

    If LCase(TypeName(Item)) = "mailitem" Then
        Item.Mileage = ""
        PrepToSendMK166 Item
    End If

End Sub
4

1 回答 1

0

在提交过程中触摸消息会停止提交。Application.ItemsSend事件是您在将消息移交给传输提供商之前接触消息的最后机会。您的下一个机会(对您来说可能为时已晚)是当消息被移动到“已发送邮件”文件夹并且Items.ItemAdd事件触发时。

您正在尝试做的事情没有解决方案。另请注意,发件箱文件夹是一种吸引人的东西:使用 MAPI 时,可以从任何文件夹提交邮件,而不仅仅是发件箱。

于 2020-01-08T14:56:23.333 回答