检查邮件是否已经在Outlook Redemption中转发



我正在检查一个特定的邮件是否已经被转发,如果没有,则转发该邮件。可惜我运气不太好。

这是我的代码:

Private Sub Forward_Mail(OItem As RDOMail)
Dim oForwardMail As RDOMail
Dim itemTags As Variant
Dim ForwardedTagMissing As Boolean
Dim CCField As String
On Error GoTo Release
itemTags = OItem.GetProps("http://schemas.microsoft.com/mapi/proptag/0x10820040")(0)
ForwardedTagMissing = IsError(itemTags)
If ForwardedTagMissing Then
Set oForwardMail = OItem.Forward
With oForwardMail
.Subject = OItem.Subject
.HTMLBody = OItem.HTMLBody       
.Recipients.Add "Test.Email@test.com"        
.Display
End With

'Mark unread
OItem.UnRead = False

End If
Set oForwardMail = Nothing
End Sub

此代码的问题在于,它将邮件条目设置为已转发,即使邮件条目尚未被转发。知道我哪里做错了吗?

需要读取的属性是PR_LAST_VERB_EXECUTED(0x10810003)。您对EXCHIVERB_FORWARD = 104值感兴趣。DASL属性名称为http://schemas.microsoft.com/mapi/proptag/0x10810003

您也可以查看它转发的时间,参见PR_LAST_VERB_EXECUTED_TIME, DASL名称为http://schemas.microsoft.com/mapi/proptag/0x10820040

你可能会发现使用VBA线程从父文件夹和子文件夹导出电子邮件到Excel很有帮助。

如果您的意思是Outlook(和Redemption)在用户实际单击新邮件上的发送按钮之前将原始邮件标记为已转发,那么这是意料之中的。如果新邮件被取消,Outlook将忽略更改。

最新更新