mailItem.sent 参数如何工作?

How does the mailItem.sent parameter work?

我正在使用 Excel VBA:

发送邮件
With OutlookApplication.CreateItem(olMailItem)
    .Subject = topic
    .to = emailAddress
    .HTMLBody = content
    .Send
    msgbox .Sent
end with

其中 .Sent 在我的计算机上引发错误。

我问为什么: How to keep reference to mail after sending in Outlook VBA?

我决定忽略该错误并假设电子邮件引用在发送后消失。

现在有客户在发送电子邮件时报告 .Send returns False

为什么.Sent说谎?

调用 MailItem.Send 后唯一允许的操作是释放对 MailItem 变量的引用。

即使您可以这样做,Sent 属性 仍然是错误的:消息提交是一个异步过程。 Outlook 将邮件移至发件箱文件夹,并将其交给传输提供商。一旦它异步发送消息,就会在“已发送邮件”文件夹中创建一条新消息,并填充所有与发件人相关的属性。该(新)消息的 Sent 属性 为真。