Extended 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 エラーが発生します。この問題についての洞察をいただければ幸いです。