0

我目前正在编写一个脚本,从通过 Exchange 收到的电子邮件中获取主题和附件。

为此,我找到了php-ews并使用提供的示例之一来检索附件。ErrorInvalidIdMalformed: Id is malformed当我尝试运行它时,脚本会抛出。

我猜我从 Outlook 获取 MessageID 时犯了一个错误,但似乎只有一个标有“MessageID”的字段。它看起来像这样: 3cbab9c9ad50410592b55f7ade96a57a@[domain].fr

有什么我错过的吗?

感谢您的帮助。

4

2 回答 2

0

ErrorInvalidIdMalformed

表示传入的字符串存在结构性问题。但是,您发布MessageID的内容似乎没有任何问题。MessageID

您可以尝试GetItemRequest通过XmlSerializer序列化实例,然后检查实际的 xml 是否存在问题。(也许将实际的 xml 发布到您的问题中)。

我猜想您的 xml 中缺少一个字符,或者它包含不应该包含的内容。

于 2017-11-13T12:40:57.753 回答
0

看起来您将 EWSId 与 MessageId 混淆了,EWSid 是可用于直接访问项目的标识符,请参见https://msdn.microsoft.com/en-us/library/office/dn605828%28v=exchg。 150%29.aspx进行完整讨论。

您的实例中的 messageId 3cbab9c9ad50410592b55f7ade96a57a@[domain].fr 是 Internet MessageID,通常由第一个 MTA 分配以处理该消息。您可以使用 EWS 和 FindItem 操作搜索具有此 ID 的消息,例如Exchange Web 服务通过“Message-ID”标头查找 EmailMessage,但您不能使用该 ID 直接绑定到该项目。(如果你只是想要一个 ewsId,你可以绑定直接使用 EWSEditor https://ewseditor.codeplex.com/来获得一个可绑定的例子)

于 2017-11-14T03:26:24.863 回答