从 outlook 的邮件中获取失败原因
Get the failure reason from a mail in outlook
我正在 outlook 邮箱上做一些自动化,以前是 lotus notes.So我正在寻找 outlook 中的等效属性。 Lotus Notes 邮件项目有一个 item named FAILUREREASON
which has the details about why the email is failed such as delivery failure reason etc. This item will be available when the mail is a delivery failure email. So when i loop through mails in inbox i can recognize which mail is a delivery failure email in inbox and which is actual required mail to be processed. But in outlook MailItem 对象,我没有找到任何获取它的选项。我搜索了任何解决方案,但找不到任何解决方案。我们可以在主题中搜索 'failure' 之类的词,但这不是一个好方法。谁能知道我需要查看的 属性 或任何其他方法。
标准退回或无法送达的电子邮件在 Outlook 中作为特殊项目使用 "REPORT.IPM.Note.NDR"
消息 class 接收,并在 Outlook [=] 中作为 ReportItem
object 提供21=] 模型。您还可以通过 PR_TRANSPORT_MESSAGE_HEADERS_W
MAPI 属性 在任何类型的电子邮件上阅读邮件 header 信息。
检索值的一种方法是使用 PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001F")
Outlook 对象模型中的 ReportItem
对象(与 MailItem
对象无关)通过 ReportItem.Body
属性 公开 NDR 信息。在扩展 MAPI 级别(仅限 C++ 或 Delphi),属性存储在收件人 table 中 - 您可以在 OutlookSpy 中看到数据(我是其作者) - 单击 IMessage 按钮,转到 GetRecipientTable 选项卡:
对于 MailItem
对象,您可以使用 Recipient.PropetyAccessor.GetProperty
方法访问该信息,但是 ReportItem
对象不公开 Recipients
集合(不同于 MailItem
对象)。理论上可以把MessageClass
属性改为"IPM.Note"
,记住EntryID
属性的值,保存NDR,释放原件,重新打开通过调用 Namespace.GetItemFromID
将项目作为常规 MailItem
对象,然后从接收者 table 读取数据。但这意味着修改原来的NDR(它的修改时间会改变等等)。
如果使用 Redemption is an option (I am its author), its RDOReportItem object (derived from the RDOMail
object) exposes the Recipients
collection. You can reopen Outlook's NDR in Redemption by creating an instance of the RDOSession 对象并调用 RDOSession.GetRDOObjectFromOutlookObject
方法。可以使用 RDORecipient.Fields[]
.
访问收件人属性
我正在 outlook 邮箱上做一些自动化,以前是 lotus notes.So我正在寻找 outlook 中的等效属性。 Lotus Notes 邮件项目有一个 item named FAILUREREASON
which has the details about why the email is failed such as delivery failure reason etc. This item will be available when the mail is a delivery failure email. So when i loop through mails in inbox i can recognize which mail is a delivery failure email in inbox and which is actual required mail to be processed. But in outlook MailItem 对象,我没有找到任何获取它的选项。我搜索了任何解决方案,但找不到任何解决方案。我们可以在主题中搜索 'failure' 之类的词,但这不是一个好方法。谁能知道我需要查看的 属性 或任何其他方法。
标准退回或无法送达的电子邮件在 Outlook 中作为特殊项目使用 "REPORT.IPM.Note.NDR"
消息 class 接收,并在 Outlook [=] 中作为 ReportItem
object 提供21=] 模型。您还可以通过 PR_TRANSPORT_MESSAGE_HEADERS_W
MAPI 属性 在任何类型的电子邮件上阅读邮件 header 信息。
检索值的一种方法是使用 PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x007D001F")
ReportItem
对象(与 MailItem
对象无关)通过 ReportItem.Body
属性 公开 NDR 信息。在扩展 MAPI 级别(仅限 C++ 或 Delphi),属性存储在收件人 table 中 - 您可以在 OutlookSpy 中看到数据(我是其作者) - 单击 IMessage 按钮,转到 GetRecipientTable 选项卡:
对于 MailItem
对象,您可以使用 Recipient.PropetyAccessor.GetProperty
方法访问该信息,但是 ReportItem
对象不公开 Recipients
集合(不同于 MailItem
对象)。理论上可以把MessageClass
属性改为"IPM.Note"
,记住EntryID
属性的值,保存NDR,释放原件,重新打开通过调用 Namespace.GetItemFromID
将项目作为常规 MailItem
对象,然后从接收者 table 读取数据。但这意味着修改原来的NDR(它的修改时间会改变等等)。
如果使用 Redemption is an option (I am its author), its RDOReportItem object (derived from the RDOMail
object) exposes the Recipients
collection. You can reopen Outlook's NDR in Redemption by creating an instance of the RDOSession 对象并调用 RDOSession.GetRDOObjectFromOutlookObject
方法。可以使用 RDORecipient.Fields[]
.