В настоящее время я работаю над сценарием, выбирающим темы и вложения из электронного письма, полученного от Exchange.
Для этого я нашел PHP-овость и использовал один из приведенных примеров чтобы получить вложения.
Скрипт бросает ErrorInvalidIdMalformed: Id is malformed
когда я пытаюсь запустить его.
Я бы догадался, что сделал ошибку, получив MessageID из Outlook, но, похоже, есть только одно поле с надписью «MessageID». Это выглядит так:
3cbab9c9ad50410592b55f7ade96a57a @ [домен] .fr
Я что-то пропустил?
Спасибо за помощь.
ErrorInvalidIdMalformed
означает, что есть структурные проблемы с MessageID
строка, которая передается в.
Тем не менее, нет никаких проблем с MessageID
Вы отправили.
Вы можете попробовать сериализовать GetItemRequest
экземпляр через XmlSerializer а затем проверить фактический XML на наличие проблем. (возможно опубликуйте актуальный xml на ваш вопрос).
Я предполагаю, что в вашем xml отсутствует символ, иначе он содержит что-то, чего не должно быть.
Похоже, что вы путаете 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, например: Веб-служба Exchange находит EmailMessage по "Message-ID" заголовок но вы не можете использовать этот идентификатор для привязки к элементу напрямую. (если вы просто хотите ewsId, вы можете связать напрямую с EWSEditor https://ewseditor.codeplex.com/ чтобы получить привязываемый пример)