我正在尝试使用一个小程序从 Exchange 服务器发送电子邮件并保存所有附件。根据建议,我决定使用 Redemption 库。
我已经在服务器上安装了Microsoft Exchange Server MAPI 客户端和协作数据对象 1.2.1,因此它应该可以在没有 Outlook 的情况下工作。当我在本地机器上运行程序时,它可以毫无问题地浏览我自己的收件箱。但是,当我尝试在服务器上执行它时,我遇到了问题。
即使我在代码中提供了登录信息,我也会收到登录提示。我使用与我尝试访问的帐户不同的帐户登录服务器。我最简单的尝试是这样的:
// Get session
RDOSession session = RedemptionLoader.new_RDOSession();
// Attempt login
session.Credentials.Add("outlook.server.local",
"user",
"password",
rdoCredentialType.ctGeneric,
rdoCredentialPersist.cpLocalMachine);
session.LogonExchangeMailboxEx("user",
"outlook.server.local",
false,
true,
"",
"");
// Access mailbox
RDOFolder folder = session.GetDefaultFolder(rdoDefaultFolders.olFolderInbox);
当我尝试访问邮箱或任何其他项目时出现错误:
Unhandled Exception: System.Runtime.InteropServices.COMException:
Error in IMAPI Session::OpenMsgStore: MAPI_E_LOGON_FAILED
Make sure your code runs under the Windows user identity that has MAPI profiles.
即使以其他用户身份登录,我如何才能访问我的邮箱?如果我使用“运行方式...”执行程序并提供我的用户登录名,它也可以在服务器中运行。但我需要它与不同的用户一起工作。