我正在尝试使用扩展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错误。对此问题的任何见解将不胜感激。
答案 0 :(得分:2)
需要删除与发件人相关的属性。