1

我正在尝试使用我首先加载 MAPI32.dll 的 C++ 应用程序发送电子邮件,然后尝试使用传递的必要参数访问 MAPISendMail。当我尝试执行此步骤时,它会引发异常“访问冲突......”。当我单击继续时,它会抛出“MAPI_E_FAILURE”作为错误代码。但同一段代码适用于 Windows 7 和 Outlook 2013 环境。

我正在使用的环境是 Windows 10 和 Outlook 2016,并且此操作系统中存在 Outlook 2016 的问题。

我已将此链接作为参考:MAPISendMail_Expert

我无法找出究竟是什么问题。如果有人可以帮助我,那将非常感激。

4

2 回答 2

0

我发现了导致问题的原因,这是因为我启动的 c++ 应用程序正在运行,admin privileges并且在后台运行的 Outlook 是以non-admin特权启动的。

然后我以管理员模式(“以管理员身份运行”)启动了我的 Outlook,并从我的 C++ 应用程序发送了一封电子邮件并成功完成了。

简而言之,两个应用程序都应该以相同的权限启动,即non-adminadministrator.

于 2017-11-08T06:55:44.067 回答
-1

我也遇到了这个问题,经过测试,我发现你应该设置

_T("SMTP:") + recipient.m_strAddress

https://msdn.microsoft.com/en-us/library/windows/desktop/dd296720(v=vs.85).aspx,注意lpszAddress, 格式是FAX:206-555-1212SMTP:M@X.COM,我已经通过这种方式解决了这个问题。

于 2017-11-08T05:50:29.527 回答