Uniquely identify Messages on multiple inboxes using Graph API/Outlook REST API - outlook

I'm building an application for sharing office 365 emails between the users within an organization. I have a problem for uniquely identifying an email which is part of many users' inbox.
In detail, User A sends an email to user B & C, all are within a same organization with a domain abc.com. I tried with Office 365 Graph Mail API and i checked against each users individual mail box where same email appearing with different ids. Is there any way to uniquely identify the email for different inboxes?
When I tried with the Calendar API, there is a property called 'icaluid' which can be used for uniquely identifying the event across shared calendar views. Is there anything like this support for Mail API?

You might try the InternetMessageId property, which is available in the Beta version of the Outlook API (make sure "beta" is selected at the top of the page). If you're using Graph, it's on the v1.0 version of Graph.

Related

How do I get the memberships (distribution groups) of an Outlook contact programmatically?

Using office Outlook, we can find the 'Memberships' tab when we click and expand a contact, this 'Memberships' tab shows the list of emails that the user is subscribed to.
For example, Employee X (x.x#zcompany.com / id123#zcompany.com) under the Data Department of Z Company is subscribed to the following distribution groups:
datateam#zcompany.com
allemployeees#zcompany.com
dataweekly#zcompany.com
it.uk#zcompany.com
znewsletter#zcompany.com
I would like to get the list of emails the user is subscribed to by inputting either the user's email or user's organization ID.
I found a few potential solutions but do not know exactly how to implement them:
Outlook Interop GetMemberOfList() and GetExchangeDistributionList()
Using Microsoft Graph API
VBA automation for Outlook
Reverse engineering using ExchangePowershell
Using RPA to imitate user actions on Outlook
Wonder if someone with experience doing this can provide some advice? Thanks in advance.
In OOM, call Application.Session.CreateRecipient, Recipient.Resolve, Recipient.AddressEntry.GetExchangeUser(). ExchangeUser exposes GetMemberOfList() method, which returns IAddressEntries object.

Outlook Graph email API: Threaded Email Conversations

I have an application that I have to integrate with the outlook via Graph API. I need to retrieve the conversations which I am getting using the Graph Mail API. But the graph API is not able to return the object of the email in the form of threads(like that of a conversation thread between two email ids). Also, there is no field in the object that can specify to which thread a particular email belongs so that I can group them in my app.
Is there any way I can achieve the same.
Honestly, I think there is some severe lack of documentation on this everyday use case.
The solution it seems is to filter your messages by the conversationId.
See this answer: https://stackoverflow.com/a/63570384/2591194.

Replies to categorised mail messages created via Graph don't retain the category

We have an internal web app used by staff members of the company, and are in the process of integrating it with Microsoft Outlook via the Microsoft Graph API.
We are using the Graph API to subscribe to notifications for Outlook mail messages with a specific category (via webhooks).
We are also using Graph to send mail from within our application (using the sendMail endpoint). Messages sent this way are given the same specific category, so that it is automatically imported via the notifications.
Given this usage, we would like to see all incoming replies to messages originally sent via the API to also receive the category, so that we can receive notifications for and import them as well. But this is not the case - replies arrive without the category we are looking for.
The strange thing is, manually applying a category to a sent message via the Office 365 Outlook web application UI does result in incoming replies adopting the same category. What is the difference? Is the web UI maybe applying the category to the conversation as a whole, whereas the API is applying it only to a single message? Are we able to replicate the behaviour the UI creates, via the API?
Update - some clarification:
We use the API to send mail on behalf of A, and give it a category in A's mailbox. In our case, A is a staff member, and we want to bring their mail (when appropriately categorised) into our web app. B could be anyone - possibly (even likely) not using Outlook for their mail. When using the Outlook web app, if A categorises a message they just sent, then incoming replies from B also automatically receive that category when they arrive in A's mailbox. When we send a message on A's behalf via the API and also give it the same category, replies from B arrive uncategorised.

How can I subscribe to a Team Calendar comprised of multiple Calendars?

Using Confluence version 4.1.9. The situation is that we have each individual employee with a Team Calendar in order to enter public events (vacation, jury duty, etc.) Further, each 'team' has created a wiki page that contains a calendar that shows all of the team member's calendars, thusly
We would now like to be able to sync that meta-calendar back to Microsoft Outlook, hopefully without having to force each Outlook user to manually add the entire set of calendars in the meta-calendar.
How can I set it up so that Microsoft Outlook users can subscribe to Confluence calendars of this sort?

Exchange 2007 master category list

We are constructing an application that will be interacting with Exchange 2007 calendar functions. We will be using the Outlook Redemption Objects dll’s. Our design relies upon the outlook 2007 meeting Category features. We would like to ensure that specific mailboxes have a standard set of category names and colors.
We can’t rely on users to set these up. We also can’t rely on users running the exchange client, many users will be on MAC’s and will be using OWA to manage their calendar.
As I understand it the master category list is stored in each users mailbox in an hidden message in a property named IPM.Configuration.CategoryList. I haven’t found any reference on how to set this yet.
The only things that I have found to help us are:
Group policy objects: http://technet.microsoft.com/en-us/library/cc179073.aspx As I understand this, it won’t manage the color’s and relies upon the exchange client.
A third party tool - http://www.vboffice.net/product.html?id=2006063&cmd=detail&lang=en&pub=6 The enterprise edition appears to do what we want but is expensive for a once per mailbox operation on 100 or so mailboxes.
Basically, our preferred solution is to be able to produce a script that accepts a mailbox name and sets up a standard master category list.
we were able to accomplish our task using the code at http://gsexdev.blogspot.com/2007/08/adding-categories-to-master-categories.html
AFAIK, the categories for mail box items are stored in local outlook profile and not on the exchange server.Before Ol 2K7, these were stored in registry so I doubt if category master list can be set on E2K7.

Resources