我正在尝试从Exchange服务器发送电子邮件的小程序并保存所有附加文件。根据建议,我决定使用Redemption库。
我在服务器上安装了Microsoft Exchange Server MAPI Client and Collaboration Data Objects 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.
即使以其他用户身份登录,如何访问我的邮箱?如果我使用“Run As ...”执行程序并提供我的用户登录,它也可以在服务器中运行。但我需要它与不同的用户合作。
答案 0 :(得分:3)
确保您的用户具有默认MAPI配置文件(只需启动Outlook并连接到任何邮箱)。
然后使用session.logon
登录“默认个人资料”,并使用session.GetSharedMailbox()
连接到您的邮箱。