MAPISendMailHelper 函数 (mapiunicodehelp.h)
获取 Unicode 邮件信息并使用 MAPISendMailW 发送消息,或者如有必要,将邮件转换为 ANSI 并使用 MAPISendMail 发送消息。 在Windows 8及更高版本上:直接调用 MAPISendMailW 以发送邮件。
语法
ULONG MAPISendMailHelper(
[in] LHANDLE lhSession,
[in] ULONG_PTR ulUIParam,
[in] lpMapiMessageW lpMessage,
[in] FLAGS flFlags,
[in] ULONG ulReserved
);
参数
[in] lhSession
简单 MAPI 会话的句柄或零。
如果 lhSession 参数的值为零,则 MAPI 将记录用户并创建仅在调用期间存在的会话。 此临时会话可以是现有共享会话,也可以是新会话。 如有必要,将显示登录对话框。
[in] ulUIParam
父窗口句柄或零。
如果 ulUIParam 参数的值为零并且显示对话框,则对话框为应用程序模式。 如果 ulUIParam 参数包含父窗口句柄,则其类型为 HWND (强制转换为 ULONG_PTR) 。 如果在调用期间未显示任何对话框,则忽略 ulUIParam 。
[in] lpMessage
指向包含要发送的邮件的 MAPISendMailW 结构的指针。
如果已注册的邮件提供程序要求邮件使用 ANSI 编码, MAPISendMailHelper 会将此邮件转换为 ANSI MapiMessage 结构,调用 MAPISendMail 来发送邮件。
调用函数时,请注意有关消息结构成员的以下信息:
成员 | 备注 |
---|---|
lpFiles | 当邮件没有文件附件时,将此成员设置为 NULL 。 |
lpszMessageType | 由不处理人际消息的应用程序使用。 如果应用程序处理人际消息,请将 lpszMessageType 成员设置为 NULL ,或将其设置为指向空字符串。 |
lpszSubject | NULL 值表示邮件的主题没有文本。 |
lpszNoteText | NULL 值表示 消息正文中没有文本。 |
lpRecips | NULL 值表示 没有收件人。 此外,如果此成员为 NULL, 则 nRecipCount 成员必须为零。 |
nRecipCount | 如果值为零,则表示没有收件人。 此外,如果此成员为零, 则 lpRecips 成员必须为 NULL。 |
有关函数如何处理收件人信息的更多详细信息,请参阅处理 MAPISendMailW 中的收件人信息。
[in] flFlags
选项标志的位掩码。 可以设置以下标志。
[in] ulReserved
保留;必须为零。
返回值
此函数返回以下值之一。
返回代码/值 | 说明 |
---|---|
|
收件人匹配多个收件人描述符结构,并且未设置MAPI_DIALOG。 未发送任何消息。 |
|
找不到指定的附件。 未发送任何消息。 |
|
无法打开指定的附件。 未发送任何消息。 |
|
收件人的类型不是MAPI_TO、MAPI_CC或MAPI_BCC。 未发送任何消息。 |
|
发生了一个或多个未指定的错误。 未发送任何消息。 |
|
内存不足,无法继续。 未发送任何消息。 |
|
一个或多个收件人无效或未解析为任何地址。 |
|
没有默认登录,并且显示登录对话框时用户无法成功登录。 未发送任何消息。 |
|
消息中的文本太大。 未发送任何消息。 |
|
文件附件太多。 未发送任何消息。 |
|
接收者太多。 未发送任何消息。 |
|
指定 了 MAPI_FORCE_UNICODE 标志,并且不支持 Unicode。
注意 仅当调用 MAPISendMailW 来发送邮件时,才能返回此值。
|
|
收件人未显示在地址列表中。 未发送任何消息。 |
|
用户取消了其中一个对话框。 未发送任何消息。 |
|
调用成功,消息已发送。 |
注解
有关 MAPI 发送邮件函数的详细信息,请参阅 MAPISendMailW。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | mapiunicodehelp.h |
DLL | Mapi32.dll |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈