【发布时间】:2015-08-20 16:39:36
【问题描述】:
我正在尝试通过 IMAP 协议从 Gmail 中获取未读邮件。我遵循了这个教程:https://briancaos.wordpress.com/2012/04/24/reading-mails-using-imap-and-mailsystem-net/#comment-4999,它收到了很多优秀的 cmets。 但是当我打电话时
MessageCollection 消息 = mails.SearchParse("UNSEEN");
我收到错误消息“索引和长度必须引用字符串中的位置”。 我只是调用了一个简单的函数,所以我不知道出了什么问题。有关更多详细信息,这是我的代码 sn-p:
public class MailRepository
{
private Imap4Client _client = null;
public MailRepository(string mailServer, int port, bool ssl, string login, string password)
{
if (ssl)
Client.ConnectSsl(mailServer, port);
else
Client.Connect(mailServer, port);
Client.Login(login, password);
}
public IEnumerable<Message> GetAllMails(string mailBox)
{
return GetMails(mailBox, "ALL").Cast<Message>();
}
public IEnumerable<Message> GetUnreadMails(string mailBox)
{
return GetMails(mailBox, "UNSEEN").Cast<Message>();
}
protected Imap4Client Client
{
get
{
if (_client == null)
_client = new Imap4Client();
return _client;
}
}
private MessageCollection GetMails(string mailBox, string searchPhrase)
{
Mailbox mails = Client.SelectMailbox(mailBox);
MessageCollection messages = mails.SearchParse(searchPhrase);
return messages;
}
}
【问题讨论】:
标签: c# asp.net imap gmail-imap