При ответе на электронное письмо запрос на отправку происходит асинхронно, что означает, что идентификатор сообщения не возвращается в ответе.
Согласно Microsoft решение состоит в том, чтобы добавить ExtendedProperty
к сообщению, чтобы действовать в качестве уникального идентификатора, который впоследствии можно будет использовать для поиска вновь отправленного электронного письма с помощью Restriction
в FindItem
.
Мне удалось сделать это при отправке обычной электронной почты, как показано ниже:
<ns2:CreateItem MessageDisposition="SendAndSaveCopy">
<ns2:SavedItemFolderId>
<ns1:DistinguishedFolderId Id="sentitems"/>
</ns2:SavedItemFolderId>
<ns2:Items>
<ns1:Message>
<ns1:ItemClass>IPM.Note</ns1:ItemClass>
<ns1:Subject>Test create item</ns1:Subject>
<ns1:Body BodyType="Text">And here is the body</ns1:Body>
<ns1:ExtendedProperty>
<ns1:ExtendedFieldURI
PropertyName="CustomId"
PropertySetId="SOME SET ID"
PropertyType="String"
/>
<ns1:Value>UNIQUE ID</ns1:Value>
</ns1:ExtendedProperty>
<ns1:ToRecipients>
<ns1:Mailbox>
<ns1:EmailAddress>my@email.com</ns1:EmailAddress>
</ns1:Mailbox>
</ns1:ToRecipients>
</ns1:Message>
</ns2:Items>
</ns2:CreateItem>
Проблема в том, что при попытке добавить ExtendedProperty
к Message
, содержащемуся в ReplyAllToItem
, поле не включается в запрос.
<ns2:CreateItem MessageDisposition="SaveOnly">
<ns2:SavedItemFolderId>
<ns1:DistinguishedFolderId Id="sentitems"/>
</ns2:SavedItemFolderId>
<ns2:Items>
<ns1:ReplyAllToItem>
<ns1:Subject>Subject</ns1:Subject>
<ns1:ToRecipients>
<ns1:Mailbox>
<ns1:EmailAddress>my@email.com</ns1:EmailAddress>
</ns1:Mailbox>
</ns1:ToRecipients>
<ns1:CcRecipients/>
<ns1:ReferenceItemId ChangeKey="CQ=" Id="AA="/>
<ns1:NewBodyContent BodyType="HTML">Body</ns1:NewBodyContent>
</ns1:ReplyAllToItem>
</ns2:Items>
</ns2:CreateItem>
Кстати, я использую php-ews для сборки запросов.