如何使用C#中特定发件人的Imap过滤电子邮件?

问题描述

而不是得到数字1-因为只有一个发件人已将具有指定电子邮件的一封电子邮件发送到我的收件箱,而我却得到了数字19。

using(ImapClient client = new ImapClient())
            {
                client.Connect("imap.gmail.com",993,SecureSocketoptions.SslOnConnect);
                client.Authenticate("a.t@gmail.com","pass");
                var inBox = client.InBox;
                inBox.Open(FolderAccess.ReadOnly);
                var count = inBox.Search(SearchQuery.CcContains("b.c@gmail.com"));

                Console.WriteLine(count);
            }

解决方法

正如@Fildor在评论中提到的,Search()返回唯一ID的列表。因此尝试

var count = inbox.Search(SearchQuery.CcContains("b.c@gmail.com")).Count;