我正在使用 Outlook
Nicknames
使用 C# .NET Framework 控制台应用程序的 Redemption。当我尝试添加 PST 存储时:
RDOPstStore pstStore = rdoSession.Stores.AddPSTStore(@"c:\Support\nicknames.pst", 1, "Test Store");
我收到错误:
IMsgServiceAdmin::AdminProviders 中出现错误: MAPI_E_INTERFACE_NOT_SUPPORTED
相关代码如下:
using System;
using Outlook = Microsoft.Office.Interop.Outlook;
using Redemption;
RDOSession rdoSession = new RDOSession();
rdoSession.MAPIOBJECT = new Outlook.Application().Session.MAPIOBJECT;
RDOStore defaultStore = rdoSession.Stores.DefaultStore;
RDOPstStore pstStore = rdoSession.Stores.AddPSTStore(@"c:\Support\nicknames.pst", 1, "Test Store");
RDONicknames defaultNicknames = rdoSession.GetNicknames();
RDONicknames pstNicknames = pstStore.GetNicknames();
pstNicknames.Clear();
foreach (RDONickName nickname in defaultNicknames)
{
pstNicknames.Add(nickname.GetAddressEntry());
}
pstNicknames.Save();
foreach (RDONickName nickname in pstNicknames)
{
Console.WriteLine(nickname.Name + "_" + nickname.SMTPAddress);
}
Console.ReadLine();
我尝试了“尝试添加PstStore灾难性失败”解决方案,但这并不适用于我的情况。
欢迎所有建议和帮助。
IMAPISession
,并且 MAPI 无法处理跨进程边界的封送处理
IMsgServiceAdmin
接口。你可以
rdoSession.MAPIOBJECT
属性,而是调用
rdoSession.Logon
:
rdoSession.Logon(new Outlook.Application().Session.CurrentProfileName);
您还可以调用不带参数的Logon
来登录默认配置文件。
rdoSession
。这有一个额外的好处,可以让您的进程的位数与 Outlook 的不同:
var app = new Outlook.Application();
RDOSession rdoSession = app.CreateObject("Outlook.Application");
rdoSession.MAPIOBJECT = app.Session.MAPIOBJECT;