我正在开发一个电子邮件分析应用程序,需要跟踪谁从共享邮箱发送电子邮件。为此,我使用了两个 Microsoft API:
问题
当尝试关联这两个 API 之间的同一封电子邮件时,我注意到它们之间的“internet_message_id”字段有时会有所不同,即使其他属性(时间戳、主题)确认它是同一封电子邮件。
这种不一致现象会间歇性地发生——有时 ID 完全匹配,有时则不然。
环境
我们遇到此问题的租户具有以下设置:
我的问题
任何见解或替代方法将不胜感激。有其他人在使用这些 API 时遇到过这个问题吗?
您可能想尝试使用 NetworkId,而不是以下任何一项(如果可用),请参阅 https://learn.microsoft.com/en-us/exchange/monitoring/trace-an-email-message/message-trace-modern -eac
例如
$expand=singleValueExtendedProperties($filter=(id eq 'String {00020386-0000-0000-C000-000000000046} name x-ms-exchange-crosstenant-network-message-id') or (id eq 'String {00020386-0000-0000-C000-000000000046} name X-MS-Exchange-Organization-Network-Message-Id'))
NetworkId 可以在 MessageTrace 中使用
Get-MessageTraceDetail -MessageTraceId 808bbf42-fdf5-4ff4-c83f-08dd0fefdf82 -RecipientAddress user@domain
InternetMessageId 可能因某些原因而出现问题,因为任何 MTA 都可以在 Transit 中添加/修改此值。它们应该是全球唯一的,但实际上并不能保证,因此 Microsoft 生成自己的网络消息 ID。
此外,SendItems 文件夹中存储的邮件是在任何 MTA 处理之前发送的邮件(在 MessageStore 级别完成)的副本,因此您在这些邮件中找到的值可能与您看到的收到的值不同。