2014-10-16 118 views
1

我嘗試從服務訪問微軟Outlook這樣:訪問微軟的Outlook從Windows服務

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

與任何其他Office應用程序一樣,Outlook無法從服務中使用。你的選擇是

  1. 在Exchange郵箱的情況下,你可以使用EWS連接到特定的郵箱

  2. Extended MAPI(C++或Delphi只) - 可以動態創建一個配置文件,然後添加和配置Exchange MAPI服務(MSEMS)。

  3. Redemption(任何語言) - 它的RDO系列對象可用於服務中。您可以使用RDOSession .LogonExchangeMailbox/LogonHostedExchangeMailbox/LogonPstStore使Redemption創建一個動態配置文件並記錄到它。您也可以使用RDOSession.Logon並指定配置文件名稱,但是您的服務必須以擁有該配置文件而非服務帳戶的本地用戶身份運行。