2011-01-05 38 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