防止Outlook使用VBA或C#

时间:2015-11-17 20:25:45

标签: c# vba email outlook winmail.dat

我正在使用Adobe PDFMaker Office COM Addin从MS Word邮件合并工具创建消息。我在MS Outlook的发件箱中收到带有pdf附件的邮件列表。但除了必要的.pdf附件之外,所有的电子邮件都是通过" trash" winmail.dat附件,它会使收件人(不使用Outlook)混淆不清。
我想用VBA(最好的方式)去掉这些字母中的winmail.dat附件,但可能 - 用C#(如果使用VBA不可能)。 我可以使用VBA将我的邮件格式设置为纯文本,但它没有帮助。

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

有一篇很棒的文章Forcing Plain Text With MAPI关于摆脱winmail.dat的机制(它是如何工作的),但不幸的是作者使用了C ++,我不熟悉。
所以,据我所知,有必要设置3个MAPI标志以避免TNEF:

  • MAPI_SEND_NO_RICH_INFO
  • ENCODING_PREFERENCE
  • ENCODING_MIME

我使用OutlookSpy调查外发电子邮件中的MAPI标记,但即使没有找到这样的标记。
我还阅读了Redemption library及其可能性,但我还没有找到关于这些MAPI标志的任何提示。
任何人都可以解释或只是建议:如何使用VBA或C#设置此标志?
或者可能以其他方式摆脱winmail.dat发送?

1 个答案:

答案 0 :(得分:0)

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