Добавить папку в MailKit

seowin

Client
Регистрация
02.05.2016
Сообщения
111
Благодарностей
9
Баллы
18
Помогите добавить в следующий код, чтобы искало письма только в одной конкретной папке на почте.
Пробовал сделать сам, но не получилось..

C#:
var server = "imap.yandex.com";
string port = "993";
int count = 1; // предел сколько писем брать в обработку (берет начиная от новых)
var login = project.Variables["mail_login"].Value; // переменная с логином типа
var password = project.Variables["mail_password"].Value; // пароль от почты
project.Lists["Mails_SourceList"].Clear(); // очищаем список, в который будет скачивать письма 

try {
    using (var client = new ImapClient())
    {
        client.Connect(server, int.Parse(port), true);
        client.Authenticate(login, password);
        var inbox = client.Inbox;
        inbox.Open(FolderAccess.ReadWrite);
       
        for (int i = inbox.Count - 1; i >= 0 && i >= inbox.Count - count; i--)
        {
            var message = inbox.GetMessage(i);
            project.Lists["Mails_SourceList"].Add(message.Subject + "\r\n" + message.TextBody);
            inbox.AddFlags(i, MessageFlags.Deleted, true); // Удаляем письмо после обработки
        }
        
        client.Disconnect(true);
    }
} catch (Exception e) {
    return e.Message;
}
 

seowin

Client
Регистрация
02.05.2016
Сообщения
111
Благодарностей
9
Баллы
18
Вот решение, может быть кому пригодится:

C#:
var server = "imap.yandex.com";
string port = "993";
int count = 1; // предел сколько писем брать в обработку (берет начиная от новых)
var login = project.Variables["login"].Value; // переменная с логином типа
var password = project.Variables["pass"].Value; // пароль от почты
project.Lists["Mails_SourceList"].Clear(); // очищаем список, в который будет скачивать письма

try {
    using (var client = new ImapClient())
    {
        client.Connect(server, int.Parse(port), true);
        client.Authenticate(login, password);
        var folderName = @"Входящие"; // Здесь меняем имя папки
        var folder = client.GetFolder(folderName);
        folder.Open(FolderAccess.ReadWrite);
      
        for (int i = folder.Count - 1; i >= 0 && i >= folder.Count - count; i--)
        {
            var message = folder.GetMessage(i);
            project.Lists["Mails_SourceList"].Add(message.Subject + "\r\n" + message.TextBody);
            folder.AddFlags(i, MessageFlags.Deleted, true); // Удаляем письмо после обработки
        }
        
        client.Disconnect(true);
    }
} catch (Exception e) {
    return e.Message;
}
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)