【问题标题】:Prevent Outlook from sending winmail.dat (TNEF) with VBA or C#防止 Outlook 使用 VBA 或 C# 发送 winmail.dat (TNEF)
【发布时间】:2016-02-19 09:04:15
【问题描述】:

我正在使用 Adob​​e PDFMaker Office COM 插件从 MS Word 邮件合并工具创建消息。我在 MS Outlook 的发件箱中收到带有 pdf 附件的邮件列表。但除了必要的 .pdf 附件之外,所有电子邮件都以“垃圾”winmail.dat 附件发送,这让收件人(不使用 Outlook)非常困惑。
我想用 VBA (最好的方法),但可能 - 用 C# (如果使用 VBA 不可能)摆脱这些 winmail.dat 附件。 我可以使用 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 发送?

【问题讨论】:

标签: c# vba email outlook winmail.dat


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-27
    • 2011-09-28
    • 2014-09-09
    • 1970-01-01
    • 2013-05-27
    相关资源
    最近更新 更多