2017-09-06 17 views
1

saveAsyncの後にメールのitemIdが届いています。outlookメールで送られたメールの後に商品が変更されています

郵便物が一旦送付されると、はOffice.context.mailbox.item.itemIdにあり、作成モードで与えられたものとは異なります。コンモードでitemIdを取得するために使用

コード:それは違う私の驚きに

`Office.context.mailbox.item.itemId` 

:電子メールが送信され

var itemId = Office.context.mailbox.item.itemId; 
if (itemId === null || itemId == undefined) { 
    Office.context.mailbox.item.saveAsync(function (result) { 
     itemId = result.value; 
    }); 
} 

した後は、私は、電子メールのitemId送らボックスから使用を検証しました。

documentationによると、itemIdは同じでなければなりません:

itemIdプロパティは、コンモードでは使用できません。項目識別子が必要な場合は、saveAsyncメソッドを使用して項目をストアに保存し、コールバック関数のAsyncResult.valueパラメータの項目識別子を返します。

私は間違っていますか?

答えて

2

まず、商品のitemIdは静的な値ではないことを理解することが重要です。アイテムはExchange内を移動するたびにIDが変更されます。 EWS documentationから:

Exchangeの識別子は不透明です。たとえば、EwsIdは、開発者としては重要ではなく、Exchangeにとって重要ないくつかの情報から作成されます。

なぜこのようなことが起こっているのかは、saveAsyncがDraftsフォルダに保存されるためです。アイテムが送信されると、アイテムはまず送信トレイに移動され、送信済みアイテムフォルダに移動さ​​れます。これらのフォルダの変更(下書き、送信トレイ、送信済みアイテム)によって、itemIdフィールドが変更されます。

関連する問題