我在 MFC 应用程序中使用MAPISendMail(),并且遇到一个问题,即 webmail 客户端有时会收到 winmail.dat 附件,而不是“真实”附件。
我研究了很多,发现其他人也遇到了这个问题,但没有找到解决方案。
我相信问题可能出在我的MapiFileDesc结构中,我让 lpFileType 成员指向 NULL,以便让邮件程序(在我的情况下为 Outlook 2010)自动确定文件类型。 lpFiletype是MapiFileTagExt结构,文档中这样说: NULL 值表示未知文件类型或由操作系统确定的文件类型。
所以我相信这应该适用于常见的类型,比如 JPEG 或 GIF 等。
我读到 winmail.dat 是由 Outlook 发送用微软专有的ms-tnef编码编码的邮件引起的。但是,在发送电子邮件时,Outlook 将“HTML”显示为突出显示,而不是 RTF。
有没有人遇到过这个问题并妥善解决?
通过 SMTP 发送等不是一种选择,因为用户应该在他们的已发送邮件文件夹中拥有邮件的副本。使用 Outlook 对象模型不是一种选择,因为这需要用户安装 Outlook,而不是任何 MAPI 兼容的客户端。