I'am developing addon for outlook. So for it I am using office.js api. In my addon I want the option to open emails in new window. I store emails ID in db.
Problem is that I "grab" Id of email when it is in compose status, for example, emails ID is AAA
. I press sent
btn and email now in Sent folder.
As it should, then I want to open that email using my addon, but I could not, reason that id of that email is now 'BBB'!
I checked it by pressing on that email in Outlook and calling this javascript code Office.context.mailbox.item.ItemId
I found that email ID changed.
Question is how to make ID what is returned by Office.context.mailbox.item.ItemId
constant so is the same in compose
and in Sent
status of the email?
In graph.api you have immutable ids but I do not see how to apply them in office.js.api
First of all, I'd recommend calling the Save method before retrieving the item Id. For example, the EntryID
property available in the Outlook object model is set when an item is saved to the store.
Also different Outlook clients will return the itemId
in the protocol they leverage. REST and EWS item Ids are escaped differently which is causing the difference between the itemId
for the same item.
The id returned by Office.context.mailbox.item.itemId
is an EWS item id. You can convert it to rest/graph item id by using Office.context.mailbox.convertToRestId
.
In the desktop edition of Outlook the EntryId
may be changed when an item is moved to another folder/store. Check it out whether this is the case.