从Windows服务访问MS Outlook

时间:2014-10-16 11:52:34

标签: c# service outlook outlook-2010

我尝试以这种方式从服务访问MS Outlook:

oApp = new Outlook.Application();
oNS = (Outlook._NameSpace)oApp.GetNamespace("MAPI");
oNS.Logon(Missing.Value, Missing.Value, false, true);
oFolder = oNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

如果将此代码作为Windows应用程序运行,则它正常运行。但是,如果我尝试作为服务运行,我会收到错误

服务器不可用

oNS.Logon(Missing.Value, Missing.Value, false, true);

从服务访问MS Outlook文件夹的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

Outlook,就像任何其他Office应用程序一样,无法从服务中使用。你的选择是

  1. 如果是Exchange邮箱,您可以使用EWS连接到特定邮箱

  2. Extended MAPI(仅限C ++或Delphi) - 您可以动态创建配置文件,然后添加和配置Exchange MAPI服务(MSEMS)。

  3. Redemption(任何语言) - 其RDO个对象系列可用于服务。您可以使用RDOSession。LogonExchangeMailbox / LogonHostedExchangeMailbox / LogonPstStore使Redemption创建动态配置文件并记录到它。您也可以使用RDOSession.Logon并指定配置文件名称,但是您的服务必须以具有该配置文件而不是服务帐户的本地用户身份运行。