Is there a way to change the GlobalAppointmentId of an appointment.
I found this property schema:
var globalIdPropertySchema = #"http://schemas.microsoft.com/mapi/id/{6ED8DA90-450B-101B-98DA-00AA003F1305}/00030102";
and I set a new value to it:
Item.PropertyAccessor.SetProperty(globalIdPropertySchema, MY_NEW_ID);
then when I get it using Item.PropertyAccessor.GetProperty I'm getting the new id, but the Item.GlobalAppointmentId is still the original one.
I'm needing this so that my addin can sync appointments using ICS files, our system sends ICS files with a suffix in the iCalendar UID field.
But it's possible to create appointments for our system through the Outlook AddIn, then the ICS file which is send uses the GlobalAppointmentID as the UID field in the ICS file. We store it, but it needs to have our suffix. Any tips?
You will need to completely release the appointment to make sure Outlook reloads it next time.
Do you see the change after you restart Outlook?
Related
I have the task to get several Mails with the Graph API and archive those as .msg files to a server.
Right now, i'm only able to get mails as MIME. Is there a way to transform those into .msg files?
MSG file format is specific to the Windows version of Outlook. Neither Graph nor EWS expose that file format in any way. You can create an MSG file (see How to create ".msg" file without using outlook in mfc?) and import EML into it.
Also note that Outlook will be just as happy to open and display an EML file as an MSG file, so it might make sense to work with EML files, even if they don't expose all the information and MAPI specific properties that an MSG file can store.
We have an addin that saves additional data back into the email which is causing conflicts when office 365 processes the email and 'returns' the sent copy back to the mailbox.
We have identified that saving the information back to the email after exchange has received a copy to process the message is what causes the issue but we don't know how to solve this. Does anyone have any advice how to go about modifying the UserProperties values without causing conflicts?
Do not save the message twice - set the data before it is saved for the very first time. Or keep your custom data elsewhere - associated (hidden) content table is the standard location.
It is not possible to avoid adding custom data to items in Outlook. But the best what you can do is to avoid weak places that could cause such issues.
inside a Outlook COM Add-in (C#) I was able to retrieve all selected mails inside Outlook like this
var selection = Globals.ThisAddIn.Application.ActiveExplorer().Selection;
List<Outlook.MailItem> outlookMailList = new List<Outlook.MailItem>();
foreach (object mail in selection)
outlookMailList.Add((Outlook.MailItem)mail);
to store the selected mails with some meta data inside a DMS.
Now I would like to do the same with the Javascript API for Office (office.js).
What is the correct entry point here? Because when I select more than one mail inside Outlook the OutlookTab-buttons inside the default ribbon get deactivated.
see also http://bettersolutions.com/javascript-api/hosts/extensionpoint.htm
For retrieving the mail information I have found
selectedMail = Office.context.mailbox.item;
How can I get now the data for all marked mails in Outlook. I expected to have something like
selectedMails = Office.context.mailbox.items;
// OR
selectedMails = Office.context.mailbox.selectedItems;
Does someone know how to retrieve the information which mails were selected to the TaskPane or maybe a CustomPane? Respectively if it is even possible?
Thanks a lot.
Unfortunately Office JS API built for handling a single item. Handling multiple items is not possible.
If this is a new feature you want to include in the future, you may submit a feedback.
https://officespdev.uservoice.com/
Best regards
I'm developping an outlook addIn using C# and I need to get attachment id from redemption or RDO MAil.
how's that?
Thank you
Outlook attachments (unlike messages) do not have unique ids since they only exist in the context of their parent messages.
PR_ATTACH_NUM property is used to open attachments - http://msdn.microsoft.com/en-us/library/office/cc841969.aspx.
But that property is not guaranteed to stay the same when a message is opened. More than that, the value of the PR_ATTACH_NUM property can differ depending on whether you retrieve it from the attachment table or from the attachment itself. Below is example from OutlookSpy (I am its author):
What exactly are you trying to do?
I was trying to replace attachment with a link in async callback method and I needed to detect which attachment to replace.
I used as flag the contentID of the Interop.Redemption.RDOAttachment Object and it worked fine, Thank you .
I am trying to export a user's calendar from Outlook 2007 to a PST file.
The calendar contains appointment items making use of an obsolete custom form (written in VBS).
This form attempts to retrieve data from a database server that no longer exists, which results in error messages appearing during the export. Eventually, the export hangs and does not complete.
What options do I have as far as methods to work around this problem?
Skipping the appointment items with this error would be acceptable, as long as the balance of non-erroneous appointment items can be exported.
You can either
Filter out appointments with the custom message class by only specifying the standard IPM.Appointment class:
RestrictedItems = MAPIFolder.Items.Restrict("[MessageClass] = 'IPM.Appointment' ")
Or avoid using the Outlook Object Model by using Extended MAPI (C++ or Delphi) or Redemption (I am its author - any language).