Я пытаюсь отправить электронное письмо с помощью приложения c ++, где я сначала загрузил MAPI32.dll, а затем попытался получить доступ к MAPISendMail с необходимыми параметрами. Когда я попытался выполнить этот шаг, он выдал исключение «Нарушение прав доступа ..». Когда я нажимаю «Продолжить», он выдает «MAPI_E_FAILURE» в качестве кода ошибки. Но тот же кусок кода отлично работает для Windows 7 и Outlook 2013.
Я использую среду Windows 10 и Outlook 2016, и проблема существует в этой ОС с Outlook 2016.
Я взял эту ссылку в качестве ссылки:MAPISendMail_Expert
Я не мог проследить, в чем именно заключается проблема. Было бы очень замечательно, если бы кто-нибудь мог мне помочь.
Я выяснил причину проблемы, потому что запущенное мной приложение c ++ работает с admin privileges
и прогноз, который работает в фоновом режиме запускается с non-admin
привилегии.
Затем я запустил свой внешний вид в режиме администратора («Запуск от имени администратора»), отправил электронное письмо из моего приложения c ++ и сделал это успешно.
Вкратце, оба приложения должны быть запущены с одинаковыми привилегиями, то есть либо запускать оба приложения как non-admin
или запустить их оба (приложение C ++ & перспективы) как administrator
,
Я также столкнулся с этой проблемой, после тестирования я обнаружил, что вы должны установить
_T("SMTP:") + recipient.m_strAddress
https://msdn.microsoft.com/en-us/library/windows/desktop/dd296720(v=vs.85).aspx , обрати внимание на lpszAddress,
формат FAX:206-555-1212
а также SMTP:[email protected]
Я решил эту проблему таким образом.