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