我正在尝试使用c ++应用程序发送电子邮件,我首先加载了MAPI32.dll,然后尝试访问MAPISendMail并传递必要的参数。当我尝试执行此步骤时,它会抛出异常“访问冲突...”。当我单击继续时,它会抛出“MAPI_E_FAILURE”作为错误代码。但是同样的代码可以很好地适用于Windows 7和Outlook 2013环境。
我正在使用的环境是Windows 10和Outlook 2016,此操作系统中存在Outlook 2016的问题。
我已将此链接作为参考:MAPISendMail_Expert
我无法找出究竟是什么问题。如果任何人能帮助我,那将是非常值得注意的。
答案 0 :(得分:0)
我发现了导致问题的原因,这是因为我启动的c ++应用程序正在运行admin privileges
,并且后台运行的Outlook以non-admin
权限启动。
然后我以管理模式启动了我的Outlook(“以管理员身份运行”),并从我的c ++应用程序发送了一封电子邮件并成功完成了。
简而言之,应该以相同的权限启动应用程序,即以non-admin
运行应用程序或以administrator
运行它们(C ++ app& outlook)。
答案 1 :(得分:-1)
我也遇到过这个问题,经过测试,我发现你应该设置
_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:M@X.COM
,我已通过这种方式解决了这个问题。