【发布时间】:2017-04-19 04:52:29
【问题描述】:
我正在尝试使用 Redemption 显示 Exchange 共享邮箱已发送文件夹。
例如,我可以打开收件箱、联系人或日历文件夹而不使用 Redemption,如下所示。
Outlook.Application app = new Outlook.Application();
Outlook.NameSpace ns = app.GetNamespace("MAPI");
string recipientName = "SharedAccountName@MyCompany.com";
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 = "SharedAccountName@MyCompany.com";
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
}
更新:Dmity 是正确的,但我仍然需要 Redemption 获取已发送共享邮箱文件夹的 entryid 和 storeid,因为我无法使用 _NameSpace.GetSharedDefaultFolder 检索它。这是我最终做的,希望它可以帮助别人。
Outlook.Application app = new Outlook.Application();
Outlook.NameSpace ns = app.GetNamespace("MAPI");
string recipientName = "anExchangeEmailAddress@yourCompany.com";
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();
}
【问题讨论】:
标签: outlook-addin outlook-redemption