2015-07-30 3 views
0

Я собирался получить все свои сообщения в папке «Входящие» и поместить их в компонент datagridview. Но предложение «var message = client.Inbox.GetMessage (uids.Count - i - 1)»; выдает исключение: сервер IMAP не возвратил запрошенное сообщение. Что-то не так с моим кодом?Как получить все сообщения из папки Imapclient?

//get a imapclient and connect to the server 
string loginemail = UserInfo.LoginEmail; 
string password = UserInfo.LoginPassword; 
var client = new ImapClient(); 
client.Connect("imap.qq.com", 993, SecureSocketOptions.SslOnConnect); 
client.Authenticate(loginemail, password); 
client.Inbox.Open(FolderAccess.ReadOnly); 
var uids = client.Inbox.Search(SearchQuery.All); 

//get all the messages from the specified folder 
for (int i = 0; i < uids.Count; i++) 
{ 
    dataGridView1.Rows.Add(1); 
    var message = client.Inbox.GetMessage(uids.Count - i - 1); 
    dataGridView1.Rows[i].Cells[0].Value = message.From.ToString(); 
    if (message.Subject != null) { dataGridView1.Rows[i].Cells[1].Value = message.Subject.ToString(); } 
    else { dataGridView1.Rows[i].Cells[1].Value = ""; } 
    dataGridView1.Rows[i].Cells[2].Value = message.Date.ToString(); 
} 
+0

Пожалуйста, добавьте тег для языка программирования, который вы используете. Быстрый googling предлагает VB.NET или C#, но это тоже не похоже. – tripleee

ответ

0

Единственный способ выяснить проблему, это следовать инструкциям в MailKit FAQ получить журнал протокола и посмотрите, что сервер посылает в ответ.