【问题标题】:Outlook Add-In - Custom Headers for Email TrackingOutlook 加载项 - 用于电子邮件跟踪的自定义标头
【发布时间】:2011-06-04 03:43:36
【问题描述】:

我们用 C# 编写了一个 Outlook 加载项,它为传出的邮件附加了一个自定义标头。

这个加载项必须使用一个名为 Redemption 的库来绕过 Outlook 的安全性来修改标题,这一切都很好。

我们的问题在于通过交换服务器发送外发邮件时。我们这样使用附加标题:

  • 添加一个 References 标头,其中包含一个包含 ID 的电子邮件地址,以便我们的系统进行跟踪。
  • 这是所有邮件客户端在回复邮件时都应传递的标准电子邮件标头。因此,回复消息会自动跟踪新消息。

如果您从 Outlook 中的 IMAP 帐户设置(例如 GMail)发送电子邮件,所有这些都可以正常工作。

问题是,如果您通过 Exchange 帐户发送邮件,Exchange 服务器会覆盖 References 标头并使用它自己的专有标头:Thread-Index主题主题。电子邮件标准建议使用 ReferencesIn-Reply-To 标头。在这个问题上看到这个link

有人知道解决这个问题的方法吗?一些算法可以让我们获得以下信息:

  • 向包含 10 位 ID 和 3 个字母前缀的电子邮件添加标题(任何名称或类型)
  • 从所有(或大多数)邮件客户端回复此电子邮件会保留自定义标头

【问题讨论】:

    标签: c# .net email outlook exchange-server


    【解决方案1】:

    我认为以下算法将解决我们的问题:

    • 我们的 Outlook 插件将设置引用和任意 X-标头
    • 我们的邮件过滤器会查找引用,如果找到就使用它(如果外发邮件服务器是 Exchange,它将不存在)
    • 如果我们的邮件过滤器找到任意的 X-header 和 Thread-Index,它将存储在 X-header 中找到的数据。
    • 稍后如果电子邮件被多次回复,邮件过滤器将使用 Thread-Index 查找过去的信息以保持对电子邮件的跟踪。

    对于那些想了解 Thread-Index 标头内部结构的人来说,它是一个 Base64 编码的字符串。前 22 个字节是原始的唯一部分,每个回复都会在其上增加 5 个字节。我们只使用前 22 个字节来识别电子邮件。

    【讨论】:

    • 您好,想知道您是否设法跟踪电子邮件?如果是这样,你是怎么做到的? - 谢谢。
    • 我上面的回答概述了我们所做的。虽然我不再使用那个特定的软件了。
    猜你喜欢
    • 1970-01-01
    • 2021-06-19
    • 2021-07-23
    • 2022-10-14
    • 1970-01-01
    • 2012-01-20
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多