无法发送MAPI消息

时间:2012-12-19 21:21:05

标签: c++ send mapi

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

1 个答案:

答案 0 :(得分:2)

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