阻止Outlook使用VBA或C#发送winmail.dat(TNEF)



我正在使用Adobe PDFMaker Office COM Addin从MS Word邮件合并工具创建消息。我在MS Outlook的发件箱中收到一份带有pdf附件的邮件列表。但是,除了必要的.pdf附件外,所有电子邮件都是用"垃圾"winmail.dat附件发送的,这让收件人(不使用Outlook的人)非常困惑
我想用VBA(最好的方法)去掉字母中的这些winmail.dat附件,但可能用C#(如果用VBA不可能的话)。我可以使用VBA将邮件的格式设置为纯文本,但这没有帮助。

编辑:如果手动删除winmail.dat,Outlook将在发送过程中再次附加它。

有一篇很棒的文章《用MAPI强制纯文本》讲述了摆脱winmail.dat的机制(它是如何工作的),但不幸的是,作者使用了我不熟悉的C++
因此,据我所知,有必要设置3个MAPI标志来避免TNEF:

  • MAPI_SEND_NO_RICH_INFO
  • 编码_引用
  • 编码_时间

我使用OutlookSpy来调查我发送的电子邮件中的MAPI标志,但甚至没有找到这样的标志
我也读过关于Redemption库及其可能性的文章,但我也没有发现任何关于这些MAPI标志的提示
有人能解释或只是建议:如何使用VBA或C#设置这些标志吗
或者可能通过其他方式摆脱winmail.dat发送?

使用MailItem.PropertyAccessor.SetProperty将特殊命名属性UseTnef(DASL名称http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/8582000B)设置为false。

最新更新