【问题标题】:Trouble sending a MAPI message发送 MAPI 消息时遇到问题
【发布时间】:2012-12-07 08:05:02
【问题描述】:

我正在尝试使用扩展 MAPI 发送消息,但不断收到 E_ACCESSDENIED 错误。我正在使用调用 cpp dll 的 C# 类。我可以检查邮件和删除邮件,但不能发送。下面是我用来创建消息的 C#:

using (MAPIMessage message = new MAPIMessage())
{
   if (message.Create(this))
   {
      message.SetSender(send.SenderName, send.SenderAddress);
      message.SetSubject(send.Subject);
      message.SetBody(send.Message);
      message.AddRecipient(send.RecipientAddress);
      //  High: Add attachments

      #if DEBUG
      ConfirmMessageCreation(send, message);
      #endif

      Logger.Log("Message created...\nSending message...", Verbose.LogEverything);
      result = message.Send();
   }

       else
          Logger.Log("There was a problem creating the email.", Verbose.LogImportant);
}

发送消息的实际cpp如下:

BOOL MessageSend(CMAPIMessage* pMessage)
{
    return pMessage->Send();
}

...

BOOL CMAPIMessage::Send()
{
    HRESULT result = Message()->SubmitMessage(0);

    if(Message() && result==S_OK) 
    {
        Close();
        return TRUE;
    }
    return FALSE;
}

即使我已正确登录并且可以检查或删除消息,但在调用 Send() 时仍会收到 E_ACCESSDENIED 错误。对此问题的任何见解将不胜感激。

【问题讨论】:

  • 您是否设置了任何与发件人相关的属性?
  • 就是上面的内容。我设置了发件人姓名和电子邮件地址。
  • 不添加任何发件人相关属性是否有效?尝试保存消息(调用 SaveChanges 而不是 SubmitMessage),然后在 OUTlookSpy 中查看它(单击 IMEssage)并通过单击 SubmitMessage 尝试提交。如果这不起作用,请尝试删除与发件人相关的属性。是否已解决所有收件人(具有 PR_ENTRYID)?
  • @Dimitry,我删除了发件人信息,它发送了。你是一个很棒的人!太感谢了。请设置一个答案,我会给你信用。再次感谢您!

标签: c++ send mapi


【解决方案1】:

需要删除发件人相关属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 2017-04-03
    • 2021-10-18
    相关资源
    最近更新 更多