1

我正在尝试使用扩展 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 错误。对此问题的任何见解将不胜感激。

4

1 回答 1

2

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

于 2012-12-24T15:15:45.453 回答