我正在编写一个应用程序,该应用程序根据每个 Microsoft Outlook 帐户的预获取数据设置签名(用户可能有多个 Outlook 帐户用于各种目的)。
我可以为默认帐户设置签名,但我还没有找到如何为每个 Outlook 帐户单独设置签名。我做了很多自己的研究,并在 Microsoft.Office.Interop 对象周围闲逛,但运气不佳。
有没有办法做到这一点?
要以编程方式选择 Outlook 配置文件,您只需使用
Microsoft.Office.Interop.Outlook.Application App =
new Microsoft.Office.Interop.Outlook.Application();
NameSpace mapi = App.GetNamespace("MAPI");
mapi.Logon(profileName);
显然,profileName
在启动 Outlook 时将其设置为下拉列表中显示的内容(如果您未在控制面板电子邮件设置中设置默认配置文件)。
然而,这在许多方面都是有问题的,因为 Outlook 不支持多个会话,即使 MAPI 登录支持:http: //msdn.microsoft.com/en-us/library/bb219914 (v=office.12).aspx
含义:如果 Outlook 已经在运行,您甚至可以设置NewSession
为true
,但这无济于事。无论您设置什么名称,它都会为您提供当前登录的配置文件。如果你有一个 Outlook 僵尸(我在测试时得到了这个,请检查任务管理器),即没有显示 UI 的 Outlook,问题是一样的。
如果您可以确保 Outlook 在处理签名时不会运行,那么您应该没问题。