我想通过MAPI包装器获取Outlook中默认发件人配置文件的电子邮件地址。 多年来我一直在使用这里描述的Noel Dillbough的MAPI包装器 https://www.codeproject.com/Articles/10881/MAPIEx-Extended-MAPI-Wrapper 直到最近,当我开始在Windows 10 / Outlook中遇到一些问题时,没有问题,电子邮件卡在发件箱中而没有被发送。 无法在2009年之后看到解决方案或查找代码更新,所以我想我会尝试PJ Naughter包装器 http://www.naughter.com/cmapi.html
如果您通过此处所述的注册表设置取消Outlook警告,则此工作正常:http://www.msoutlook.info/question/883
[附带问题:想知道Dillbough MAPI包装器如何避免这个问题,这是他明确提到的......
(I)被提醒可怕的Outlook安全警告。所以,我决定研究扩展的MAPI。
所以我把它全部搞定了,并且效果很好,但是Naughter包装器与Dillbough包装器相比缺少一个功能。 Naughter包装器没有任何代码来检索默认的电子邮件发件人地址。 Dillbough包装器具有GetProfileName和GetProfileEmail功能,可让您在继续时轻松找出发件人的身份。 我用它进行检查,并希望将此功能添加到Naughter包装器中。
有人已经这样做了吗? 我试图将它添加到PJ Naughter包装器中,但我对MAPI的了解有限,而且我开始对包装器的内部进行过多的研究。 对其他实现的任何帮助或指示都赞赏......?
这里有更多细节: 在旧代码中,我调用了没有参数的CMAPIEx :: Login()来登录默认的Outlook配置文件(即使用空字符串作为配置文件)。 在内部,这称为...... MAPILogonEx(0,0,NULL,MAPI_LOGON_UI | MAPI_USE_DEFAULT,& lpMAPISession); (如此处所述C++ MAPI: MAPILogonEx, how to open default mail inbox?)。
然后我只需将GetProfileEmail称为lpMAPISession函数,并可以将该电子邮件地址视为CString。 我无法在PJ Naughter包装中找到一个等价物
答案 0 :(得分:1)
您需要致电IMAPISession::QueryIdentity
以检索当前用户。您可以在OutlookSpy中使用它 - 单击IMAPISession,然后单击QueryIdentity。