我想知道是否有人可以帮助我,因为它让我疯狂地试图让这个工作
我正在处理来自http://www.lesnikowski.com/mail/的mail.dll的踪迹,这是一个非常奇妙的工具,不幸的是我不能成为一名学生(即使它大约150欧元,它对我来说仍然非常昂贵:/)和这将是我论文中的一个小模块,我的教师也买不起为学生买这些东西:/所以无论如何我不得不去寻找一个免费的工具(所以请不要建议任何非开源的 - 相信我,我试过它们所有)..
好吧,我正在尝试探索InterIMAP,几个小时一直试图从我的Gmail帐户列出未读的电子邮件,但它似乎没有起作用。我可以连接得很好,但找到未读的电子邮件似乎不是一件容易的事。我尝试了无数的方法,但似乎没有在我的收件箱中给我未读的电子邮件(我的收件箱中有大量的电子邮件,我只想要未读的邮件)。有人请帮助我吗?我一直试图让这个工作多年,但文档相当缺乏,我的每一次尝试都导致了迄今为止的失败。
请帮助!!
我目前拥有的一些代码: `IMAPConfig config = new IMAPConfig(“myhost”,“username”,“pass”,true,true,“”);
config.CacheFile = "";
IMAPClient client = null;
try
{
client = new IMAPClient(config, null, 5);
}
catch (IMAPException e)
{
Console.WriteLine(e.Message);
return;
}
Console.WriteLine(DateTime.Now.ToString());
IMAPFolder f = client.Folders["INBOX"];
IMAPSearchResult sResult = f.Search(IMAPSearchQuery.QuickSearchNew()); // <--- Gives me no results even though i do have unread messages!
答案 0 :(得分:2)
如果你没有达到目标,我们就去:
您应该按以下方式编码:
1st:在您的SearchQuery类中,添加一个新属性“unread”,例如。 第二步:添加一个返回IMAPSearchQuery的新方法。它会快速搜索未读邮件。这样的事情:
public static IMAPSearchQuery QuickSearchUnread()
{
IMAPSearchQuery query = new IMAPSearchQuery();
query.unread = true;
return query;
}
3td:在您的类IMAPFolder中,您有一个名为的方法将返回IMAPSearchResult类型并接收IMAPSearchQuery作为参数。 此方法使用IMAP命令查询(基于IMAP的协议)“构建”您的查询。 对于未读查询,您应该添加:
public IMAPSearchResult Search(IMAPSearchQuery query)
{
...
if (query.Unread)
searchTerms.Add("UNSEEN");
.
.
...
}
第4步:使用新的QuickSearch调用Search方法:
config.CacheFile = "";
IMAPClient client = null;
try
{
client = new IMAPClient(config, null, 5);
}
catch (IMAPException e)
{
Console.WriteLine(e.Message);
return;
}
Console.WriteLine(DateTime.Now.ToString());
IMAPFolder f = client.Folders["INBOX"];
IMAPSearchResult sResult = f.Search(IMAPSearchQuery.QuickSearchUnread());
让我知道你的进步。 我希望它能有所帮助。
再见。
答案 1 :(得分:1)
老实说,我刚刚结束使用Mail.dll试用版,因为interIMAP对我来说工作不正常而且速度慢,因为它因某些原因索引电子邮件:s