Я пытаюсь использовать Redemption для отображения папки с общим почтовым ящиком Exchange.Как использовать Redemption, чтобы открыть папку с общим почтовым ящиком Exchange и отобразить ее
Например, я могу открыть папку «Входящие», «Контакты» или «Календарь» без «Искупления» следующим образом.
Outlook.Application app = new Outlook.Application();
Outlook.NameSpace ns = app.GetNamespace("MAPI");
string recipientName = "[email protected]";
Outlook.Recipient recip = ns.CreateRecipient(recipientName);
recip.Resolve();
if (recip.Resolved)
{
Outlook.MAPIFolder InboxFolder = ns.GetSharedDefaultFolder(recip, Outlook.OlDefaultFolders.olFolderInbox);
//Outlook.MAPIFolder ContactsFolder = ns.GetSharedDefaultFolder(recip, Outlook.OlDefaultFolders.olFolderContacts);
//Outlook.MAPIFolder CalendarFolder = ns.GetSharedDefaultFolder(recip, Outlook.OlDefaultFolders.olFolderCalendar);
InboxFolder.Display();
}
Но поскольку olFolderSentMail не может быть указан в качестве аргумента я пытающимся использовать Redemption для отображения отправленной папки. Ссылка https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook._namespace.getshareddefaultfolder.aspx
Так вот код, который я пытаюсь, но не могу понять, как .Display(); папку с использованием Redemption или если это возможно.
Outlook.Application app = new Outlook.Application();
Outlook.NameSpace ns = app.GetNamespace("MAPI");
string recipientName = "[email protected]";
Outlook.Recipient recip = ns.CreateRecipient(recipientName);
recip.Resolve();
Redemption.RDOSession session = new Redemption.RDOSession();
session.MAPIOBJECT = Application.Session.MAPIOBJECT;
if (recip.Resolved)
{
Redemption.RDOFolder Sentfolder = session.GetSharedDefaultFolder(recip, rdoDefaultFolders.olFolderSentMail);
Sentfolder. // There's no Intellisense for Display
}
Update: Dmity была правильной, но мне все равно нужно Redemption получить EntryID и StoreID для Переданной общей папки почтового ящика, потому что я не мог получить его с помощью _NameSpace.GetSharedDefaultFolder. Вот что я сделал, надеюсь, это помогает кому-то другому.
Outlook.Application app = new Outlook.Application();
Outlook.NameSpace ns = app.GetNamespace("MAPI");
string recipientName = "[email protected]";
Outlook.Recipient recip = ns.CreateRecipient(recipientName);
recip.Resolve();
Redemption.RDOSession session = new Redemption.RDOSession();
session.MAPIOBJECT = Application.Session.MAPIOBJECT;
if (recip.Resolved)
{
Redemption.RDOFolder Sentfolder = session.GetSharedDefaultFolder(recip, rdoDefaultFolders.olFolderSentMail);
string folderID = Sentfolder.EntryID;
string storeID = Sentfolder.StoreID;
Outlook.MAPIFolder displaySent = ns.GetFolderFromID(folderID, storeID);
displaySent.Display();
}
Как всегда, спасибо Dmitry! Мне все еще нужно было использовать Redemption, чтобы получить StoreID и EntryID для общей папки Sent. –