0

回复电子邮件时,发送请求是异步发生的,这意味着响应中不会返回消息 ID。

根据微软的说法,解决方案是在消息中添加一个ExtendedProperty作为唯一 ID,以后可以使用它来查找新发送的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>

问题是,当尝试将 添加ExtendedPropertyMessage包含的 中时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 来构建请求。

4

1 回答 1

1

我不相信该操作的基础类型允许您添加扩展属性。简单的解决方法是先将消息保存到草稿文件夹

      <m:CreateItem MessageDisposition="SaveOnly">
    <m:SavedItemFolderId>
      <t:DistinguishedFolderId Id="drafts" />
    </m:SavedItemFolderId>
    <m:Items>
      <t:ReplyAllToItem>
        <t:ReferenceItemId Id="AAMkADczN..." ChangeKey="CQAA..." />
      </t:ReplyAllToItem>
    </m:Items>
  </m:CreateItem>

然后,您将收到一个 ItemId 返回到由 ReplyToAllToItem 创建的底层 EmailMessage,然后您可以在该电子邮件上使用正常的 updateItem 请求,然后使用 SendItem 操作发送它。它还有一些请求,但应该可以正常工作。

于 2019-01-23T00:01:46.247 回答