2010-02-17 17 views
30

Tôi đã tự hỏi liệu có ai biết trường chỉ mục trong tiêu đề email hoạt động như thế nào không?Trường tiêu đề email 'thread-index' hoạt động như thế nào?

Dưới đây là một chuỗi các chỉ mục chuỗi email đơn giản mà tôi đã tự biên soạn.

Email 1 Thread-Index: AcqvbpKt7QRrdlwaRBKmERImIT9IDg== 
Email 2 Thread-Index: AcqvbpjOf+21hsPgR4qZeVu9O988Eg== 
Email 3 Thread-Index: Acqvbp3C811djHLbQ9eTGDmyBL925w== 
Email 4 Thread-Index: AcqvbqMuifoc5OztR7ei1BLNqFSVvw== 
Email 5 Thread-Index: AcqvbqfdWWuz4UwLS7arQJX7/XeUvg== 

Tôi dường như không chắc chắn làm cách nào để liên kết các email này với nhau. Thông thường, tôi sẽ sử dụng trường trả lời hoặc trường tham chiếu, nhưng gần đây tôi thấy rằng Blackberry không bao gồm các trường này. Chỉ bao gồm trường Chỉ mục chủ đề.

+4

Nếu bạn đang tìm cách triển khai luồng thư, điều này rất hữu ích: http://www.jwz.org/doc/threading.html – deepwell

+0

Trải nghiệm của tôi là với .EML vì chúng không có ConversationIndex như MSG. Tôi đã làm khoảng 20.000 và nếu 32 ký tự đầu tiên phù hợp thì chúng xuất hiện trong cùng một chuỗi email. – Paparazzi

Trả lời

4

Tôi sẽ không ngạc nhiên nếu có ứng dụng thư khách ngoài đó sẽ không thể liên kết thư của Blackberry với chủ đề của họ. Tiêu đề Thread-Index dường như là một phần mở rộng của Microsoft.

Dù bằng cách nào, Novell Evolution sẽ thực hiện việc này. Hãy xem this short description về cách họ thực hiện hoặc this piece of code tìm thấy chuỗi gốc của một thư nhất định.

Tôi giả định rằng, vì độ dài của các tiêu đề Thread-Index trong ví dụ của bạn là như nhau, các thư này là tất cả các chuỗi bắt đầu? Kỳ lạ là chúng chỉ có 22 byte, mặc dù tôi cho rằng bạn có thể thử áp dụng quy tắc 5 byte cho mỗi thư cho họ và xem liệu nó có phù hợp với bạn hay không.

+1

Dường như các ứng dụng email không có triển vọng không xử lý chính xác chỉ mục-chuỗi. Chỉ mục chuỗi từ trên là từ thunderbird. Tôi đã kiểm tra với triển vọng, và nó tuân theo quy tắc mà bạn đã nói. Khá khó chịu. – Tim

+1

Từ nhìn vào một loạt các tiêu đề Thread-Index do Outlook tạo ra, tôi có cảm giác rằng mô tả được liên kết là hơi sai: Người khởi xướng chủ đề có một chuỗi chỉ mục giải mã 22 byte, chứ không phải 27. – dkarp

+1

Đây là một lỗi liên quan đến Trình kiểm duyệt Mozilla (Thunderbird): https://bugzilla.mozilla.org/show_bug.cgi?id=331207 – guettli

19

Có một phân tích tốt về cách chính xác tiêu đề "Chỉ mục chủ đề" không chuẩn này xuất hiện, trong this post và liên kết từ đó, bao gồm this pdf (một bài báo được trình bày tại hội nghị CEAS 2006) và this follow-up. nhận xét về vấn đề từ mã nguồn evolution (dường như phản ánh kỹ thuật đảo ngược đáng kể của tiêu đề không có giấy tờ này).

Tóm tắt: về cơ bản, tác giả cuối cùng từ bỏ việc sử dụng tiêu đề này và khuyến cáo và cho thấy một cách tiếp cận khác nhau, mà còn được thực hiện trong các thư viện c-client, một phần của UW IMAP Toolkit gói mã nguồn mở (đó là không cho IMAP chỉ - đừng để tên đánh lừa bạn, nó cũng hoạt động đối với POP, NNTP, hộp thư cục bộ, & c).

+1

Theo [nhận xét] mới hơn (http://blog.postmaster.gr/2007/12/11/trying- để làm cho việc sử dụng-of-outlook-thread-index-header/# comment-46307) để lại trên bài đăng trên blog của tôi mà bạn đề cập đến _ "đó là dấu thời gian OLE (22 byte), được thêm vào với dấu thời gian (5 byte). bởi vì dấu thời gian không được đảm bảo duy nhất. "_ – adamo

+0

" Cách tiếp cận khác "được triển khai trong c-client được mô tả ở đây: http://www.jwz.org/doc/threading.html –

+0

Thật sự điên rồ bao nhiêu nỗ lực mọi người dường như đã đảo ngược điều này mặc dù nó đã được ghi nhận bởi Microsoft từ ít nhất năm 2003 (https://msdn.microsoft.com/en-us/library/ms528174(v=exchg.10).aspx), và nhiều khả năng sớm hơn nhiều so với thư viện CDO đã được đưa vào NT 4.0, tài liệu cho rằng có thể bao gồm cùng một thông tin). – poizan42

15

Chúng là giá trị Cuộc hội thoại được mã hóa base64. Không cần phải thiết kế đối chiếu chúng khi chúng được Microsoft ghi lại, ví dụ: http://msdn.microsoft.com/en-us/library/ms528174(v=exchg.10).aspx và thông tin chi tiết hơn về http://msdn.microsoft.com/en-us/library/ee202481(v=exchg.80).aspx

Dường như các chỉ mục trong ví dụ của bạn không đại diện cho cùng một cuộc hội thoại, có thể là phần mềm gửi thư không thể liên kết chúng với nhau.

EDIT: Rất tiếc, tôi không có đủ danh tiếng để thêm nhận xét, nhưng adamo đúng rằng nó chứa dấu thời gian - phần FILETIME được mã hóa một phần bí truyền. Nhưng nó cũng chứa một GUID, do đó, nó là khá nhiều guarenteed là duy nhất cho thư đó (tất nhiên cùng một thư có thể tồn tại trong nhiều bản sao).

+0

Chỉ mục cuộc trò chuyện là OutLook (MAPI). Không có cho Outlook Express. Ít nhất tôi không thể tìm thấy nó. – Paparazzi

1

Nếu bạn quan tâm đến phân tích các Chủ đề-Index trong C# xin hãy xem bài này

http://forum.rebex.net/questions/3841/how-to-interprete-thread-index-header

Đoạn bạn sẽ tìm thấy ở đó sẽ cho phép bạn phân tích các Chủ đề-Index và lấy lại Chủ đề GUID và Message DateTime. Tuy nhiên, có một vấn đề, nó không hoạt động đối với tất cả các Chỉ mục-Thread. Câu hỏi là tại sao một số Thread-Index tạo ra DateTime không hợp lệ và phải làm gì để hỗ trợ tất cả chúng?

Các vấn đề liên quan