c++ - 如何使用 MAPI 从个人资料中获取电子邮件地址

标签 c++ mapi

我正在使用 MapiEx(http://www.codeproject.com/Articles/10881/MAPIEx-Extended-MAPI-Wrapper) 生成邮件。

我需要在 MAPI 客户端中登录的姓名和电子邮件才能设置为电子邮件中的发件人。

CMAPIEx 类具有 GetProfileName 和 GetProfileEmail 方法,但要使用这些方法,我需要使用用户配置文件登录 MAPI。

在CMAPIEx的登录方法中,我可以传递ProfileName,但我不知道传递什么。

我的 MAPI 客户端是 Outlook 2010,我尝试传递我在帐户中设置的电子邮件或名称,但没有任何效果。

我查看了 CMAPIEx 类中的登录方法,我发现了这个:

DWORD dwFlags=MAPI_EXTENDED | MAPI_USE_DEFAULT | MAPI_NEW_SESSION;
if(bInitAsService) dwFlags|=MAPI_EXPLICIT_PROFILE | MAPI_NT_SERVICE;
return (MAPILogonEx(NULL, (LPTSTR)szProfileName, NULL, dwFlags, &m_pSession)==S_OK);

MAPILogonEx 的第三个参数是密码,我在 Outlook 中的帐户有密码,但在 MAPILogonEx 文档 (http://msdn.microsoft.com/en-us/library/office/cc815545.aspx) 中据说让密码为 NULL。

正如我在第二段中所说,我只需要在 MAPI 客户端中登录的姓名和电子邮件,如果有人知道我做错了什么或通过其他方式获取这些信息,请告诉我。

抱歉英语不好。

最佳答案

如果您不传递配置文件名称,您将使用默认配置文件结束。 您可以在控制面板 | 中查看现有配置文件的名称。邮件 |显示配置文件。 要以编程方式枚举现有配置文件,请使用 IProfAdmin::GetProfileTable()

关于c++ - 如何使用 MAPI 从个人资料中获取电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12188688/

相关文章:

c# - 使用 EWS 托管 API 创建文件夹或打开它(如果存在)

json - 将 Outlook REST API 项目 ID 转换为 MAPI EntryID

c# - MAPI 适用于一个 x64 系统,但不适用于另一个

c++ - 如何使用 C++ 中的 MAPI 以编程方式将带附件的电子邮件发送给已知收件人? MAPISendMail()

c++ - Dijkstra 寻找最短路径的算法?

c++ - 具有多个子目录的 CMake 未编译

c++ - 如何为表达式解析器的派生类对象设置和取消引用通用指针?

c++ - 如果我在类上使用alignas,第一个成员或基类是否对齐?

c# - 从 C# 中的 MailItem 获取命名的 MAPI 属性

C++ optional<> 和不可复制对象的延迟构造