簡體   English   中英

C#MailKit獲取樹視圖中的消息對話/回復

[英]C# MailKit get messages conversation/replies inside treeview

我正在嘗試復制郵箱視圖,我嘗試使用引用和線程,但是不起作用,somethimes線程的uniqueid為null。

   foreach (var rfr in Message.References ?? new MimeKit.MessageIdList())
        {
            var _uids = Imap.Inbox.Search(SearchQuery.HeaderContains("Message-Id", rfr));

            if (_uids.Count > 0)
            {
                var _messages = Imap.Inbox.Fetch(_uids.ToList(), MessageSummaryItems.Envelope | MessageSummaryItems.Flags).OrderByDescending(o => o.Date);

                foreach (var msg in _messages)
                {
                    _Added.Add(msg.UniqueId);

                    RequestModel _model = new RequestModel
                    {
                        Address = msg.Envelope.From.Mailboxes.FirstOrDefault().Name ?? msg.Envelope.From.Mailboxes.FirstOrDefault().Address,
                        Subject = msg.Envelope.Subject,
                        Date = msg.Date.ToLocalTime().ToString(),
                        IsSeen = msg.Flags.Value.HasFlag(MailKit.MessageFlags.Seen),
                        Childs = new List<Scratch.MainWindow.RequestModel>(),
                    };

                    _retValue.Add(_model);
                }
            }
        }

var _messages = _imapClient.Inbox.Fetch(_uids.ToList(), MessageSummaryItems.Envelope | MessageSummaryItems.Flags | MessageSummaryItems.References).OrderByDescending(o => o.Date).Take(50);
            var _threads = MessageThreader.Thread(_messages, ThreadingAlgorithm.References);

MessageThreader類使用References (該References繼承了追溯到線程根的Message-Id值列表)來構造消息樹。 顯然,如果您提供給MessageThreader的消息摘要列表缺少某些引用,則返回的樹將具有一些空節點。 這就是為什么某些所述節點具有null UniqueId值的原因。

FWIW,為您提供一些技巧:

  1. 不要執行_uids.ToList() _uids 已經IList<UniqueId> ,為什么無故重復它?

  2. 使用MessageThreaderorderBy參數更有效。

像這樣:

var orderBy = new OrderBy[] { OrderBy.ReverseDate };
var threads = MessageThreader.Thread (summaries, ThreadingAlgorithm.References, orderBy);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM