使用 MAPI 时是否可以将具有 unicode 文件名的文件附加到电子邮件中?
文档说MAPISendMailW仅从 Win8 开始可用,这对我来说几乎没用。文档说要在 Win7 和更早版本上使用MAPISendMailHelper,但 MAPISendMailHelper 的文档说如果 MAPISendMailW 不可用,它将把 unicode 信息转换为 ANSI。
我开始怀疑这可能根本不可能,但我还是问了以防万一。
使用 MAPI 时是否可以将具有 unicode 文件名的文件附加到电子邮件中?
文档说MAPISendMailW仅从 Win8 开始可用,这对我来说几乎没用。文档说要在 Win7 和更早版本上使用MAPISendMailHelper,但 MAPISendMailHelper 的文档说如果 MAPISendMailW 不可用,它将把 unicode 信息转换为 ANSI。
我开始怀疑这可能根本不可能,但我还是问了以防万一。
简单的 MAPI 是不可能的,只是在不可用时MAPISendMailHelper
调用,并且不支持 Unicode。MAPISendMail
MAPISendMailW
MAPISendMail
使用扩展 MAPI(Microsoft 简称为“MAPI”,包括示例)是可能的,但扩展 MAPI 会使您的代码变得更加复杂,并且出于实际目的仅限于 Outlook/Exchange。
使用 MAPI 时,是否可以将具有 Unicode 文件名的文件附加到电子邮件取决于特定简单 MAPI 处理程序 (DLL) 的实现,该处理程序随每个电子邮件客户端提供,可以将自己注册为简单 MAPI 处理程序。大多数现代电子邮件客户端,例如 The Bat!,都实现了 MAPISendMailW。
如果电子邮件客户端实现 MAPISendMailW,则可以附加具有 Unicode 文件名的文件。如果它没有实现 MAPISendMailW,那么您将无法发送包含默认 Windows Codgepage 之外字符的 Unicode 文件名的文件,甚至 MAPISendMailHelper 也无济于事:例如,如果您设置了“德语”语言对于 Windows 设置中的非 Unicode 程序,并且您的文件名包含希腊字符,这些字符将丢失并变为问号。