【问题标题】:How to detect Outlook read receipt mail?如何检测 Outlook 已读回执邮件?
【发布时间】:2018-12-11 14:49:06
【问题描述】:
enter image description here
已读回执请求邮件通常由已接收邮件的具有前缀“read:”的主题来表示。
但是,此前缀可以构成国际字符,具体取决于所接收邮件的来源国。
因此,VBA 代码如:
instr(“阅读:”,mailitem.subject)
对于具有非英语语言环境的电子邮件,显然会通过测试。
如何在不检查邮件主题的情况下通过 VBA 代码检测已读回执邮件?
【问题讨论】:
标签:
vba
outlook
internationalization
receipt
【解决方案1】:
尝试检查项目的MessageClass 属性。请参阅Item Types and Message Classes 了解知名消息类别的列表。
很可能它将由ReportItem 对象表示。 ReportItem 对象类似于MailItem 对象,它包含来自邮件传输系统的报告(通常是未送达报告)或错误消息。
与其他 Microsoft Outlook 对象不同,您不能创建此对象。
当从邮件传输系统收到任何报告或一般错误时,会自动创建报告项目。
【解决方案2】:
对于已读电子邮件通知,您将获得一个ReportItem 对象。在读取通知的特定情况下,MessageClass 属性将为“Report.IPM.Note.IPNRN"。