2011-01-05 24 views
1

我们在C#中编写了一个Outlook加载项,它将自定义头添加到外发邮件中。Outlook加载项 - 用于电子邮件跟踪的自定义头文件

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

我们的问题在于通过交换服务器发送传出邮件时。我们使用额外报这样:

  • 添加参考头与包括与我们的系统中跟踪ID的电子邮件地址。
  • 这是一个标准的邮件标题,所有邮件客户端在回复邮件时都应该传递。因此,回复消息会自动保持新消息的跟踪。

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

问题是,如果你通过Exchange帐户发送邮件,Exchange服务器将覆盖参考头,并使用它自己的专有头:螺纹指数线程主题。电子邮件标准建议使用参考文献In-Reply-To标题。在这个问题上看到这个link

有没有人知道解决这个问题的方法?一些算法来获得我们以下几点:

  • 添加页眉(任何名称或种类),以电子邮件,其中包括一个10位数字的ID和3个字母前缀
  • 所有回复此邮件(或大部分)邮件客户端保留了自定义页眉

回答

0

我觉得下面的算法是要解决我们的问题:

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

对于那些想知道线程索引头内部的人来说,它是一个Base64编码的字符串。前22个字节是原始的唯一部分,每个回复又增加了5个字节。我们只使用前22个字节来识别电子邮件。

+0

嗨,只是想知道你设法跟踪电子邮件?如果是这样,你是怎么做到的? - 谢谢。 – salih0vicX 2013-01-26 18:04:43

+0

我上面的回答概述了我们做了什么。尽管我不再使用该特定软件。 – jonathanpeppers 2013-01-26 18:40:54