【问题标题】:Using Redemption with a different user account from a server使用与服务器不同的用户帐户使用兑换
【发布时间】:2013-03-08 19:25:57
【问题描述】:

我正在尝试使用一个小程序从 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.

即使以其他用户身份登录,我如何才能访问我的邮箱?如果我使用“运行方式...”执行程序并提供我的用户登录名,它也可以在服务器中运行。但我需要它来处理不同的用户。

【问题讨论】:

    标签: c# outlook-redemption


    【解决方案1】:

    确保您的用户具有默认 MAPI 配置文件(只需启动 Outlook 并连接到任何邮箱)。

    然后使用session.logon 登录“默认配置文件”并使用session.GetSharedMailbox() 连接到您的邮箱。

    【讨论】:

    • 能否请您关闭括号?我无法进行少于 6 个字符的编辑。
    猜你喜欢
    • 2020-05-13
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 2013-02-20
    • 2017-04-29
    • 1970-01-01
    • 2014-06-03
    • 2019-10-20
    相关资源
    最近更新 更多