nam*_*ero 4 mfc mapisendmail winmail.dat
我在 MFC 应用程序中使用MAPISendMail(),但遇到一个问题:Webmail 客户端有时会收到 winmail.dat 附件,而不是“真实”附件。
我研究了很多,发现其他人也遇到这个问题,但没有找到解决方案。
我相信问题可能出在我的MapiFileDesc结构中,其中我将 lpFileType 成员保留为 NULL,以便让邮件程序(在我的例子中为 Outlook 2010)自动确定文件类型。 lpFiletype是一个MapiFileTagExt结构,文档是这样说的: NULL值表示未知的文件类型或由操作系统确定的文件类型。
所以我相信这应该适用于常见类型,例如 JPEG 或 GIF 等。
我读到 winmail.dat 是由 Outlook 发送使用ms-tnef编码编码的邮件引起的,该编码是 Microsoft 专有的。但是,发送电子邮件时,Outlook 将“HTML”显示为突出显示,而不是 RTF。
有谁遇到过这个问题并妥善解决了吗?
通过 SMTP 等发送不是一种选择,因为用户应该在其“已发送邮件”文件夹中拥有邮件的副本。使用 Outlook 对象模型不是一个选项,因为这需要用户安装 Outlook,而不是任何 MAPI 兼容客户端。
我有类似的问题。
我发现一篇知识库文章在“一次性寻址”部分提供了有趣的信息,其中指出当以 [SMTP:SMTP 地址] 格式提供地址时,电子邮件始终以富文本格式发送。
对我来说,解决方法是根本不设置 MapiRecipDesc 对象的“Address”属性。相反,我将地址放在 Name 属性中。打开的对话框一开始不会解析地址,但它会在发送之前解析地址,然后不会以 RTF 格式发送!
我什至将其与收件人的姓名和地址一起使用:
MapiRecipDesc.Name = "Firstname Lastname <mail@address.com>";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2428 次 |
| 最近记录: |