PHP-Ews | ErrorInvalidIdMalformed:Id格式错误

时间:2017-11-13 12:12:37

标签: php exchangewebservices php-ews

我目前正在处理从Exchange收到的电子邮件中提取主题和附件的脚本。

为此,我找到了 php-ews 并使用one of the provided examples来检索附件。 当我尝试运行它时,脚本会抛出ErrorInvalidIdMalformed: Id is malformed

我猜想我从Outlook获取MessageID时出错了,但似乎只有一个字段标有" MessageID"。它看起来像这样: 3cbab9c9ad50410592b55f7ade96a57a @ [域] .FR

我有什么遗漏的吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

  

ErrorInvalidIdMalformed

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

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

我猜你的xml中缺少一个字符,否则它会包含不应该的内容。

答案 1 :(得分: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分配来处理Message。您可以使用EWS和FindItem操作(例如Exchange Web Service find EmailMessage by "Message-ID" header)搜索具有此ID的消息,但您无法使用该ID直接绑定到该项目。 (如果你只想要一个ewsId,你可以绑定直接使用EWSEditor https://ewseditor.codeplex.com/来获得一个可绑定的例子)