如何使用Imap过滤来自C#中特定发件人的电子邮件?
因为只有一个发件人用指定的电子邮件向我的收件箱发送了一封电子邮件,所以我得到的不是数字1,而是数字19如何使用Imap过滤来自C#中特定发件人的电子邮件?,c#,imap,mimekit,C#,Imap,Mimekit,因为只有一个发件人用指定的电子邮件向我的收件箱发送了一封电子邮件,所以我得到的不是数字1,而是数字19 using(ImapClient client = new ImapClient()) { client.Connect("imap.gmail.com", 993, SecureSocketOptions.SslOnConnect); client.Authenticate("
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一样,返回唯一ID的列表。因此,尝试
var count = inbox.Search(SearchQuery.CcContains("b.c@gmail.com")).Count;
搜索
返回匹配邮件UID的列表。。。请参阅,因此您可能需要检查实际的count
类型。我猜“19”是邮件的UID。@Fildor是的,我已经阅读了一段时间的文档,但我无法找到如何通过发件人电子邮件进行过滤。据我所知,您确实进行了过滤。你只是没有回来,你认为你得到了什么。仅仅因为该邮件是该收件箱中的第一封也是唯一一封邮件,并不意味着它的UID必须为“1”。@Fildor我只需添加。最后计数。。。。第一次使用Imap时,我只是在阅读文档,并尝试一步一步地完成交给我的任务…@Fildor,我很感激!谢谢你帮助我。是的,你是对的,我只是需要附加。计数-它符合我的要求。你能解释一下我们过滤时UID的用途吗?谢谢你的回答正如@Fildor所提到的,这是MimeKit的API所指定的()。它返回一个UID列表,因为这是邮件库的开发人员想要的。当您查看页面时,您可以看到您可以使用UID来获取电子邮件消息和其他内容