чтение только основных писем в IMAP с библиотекой s22 - PullRequest
0 голосов
/ 03 июля 2018

Я использую библиотеку s22 IMAP для чтения электронных писем из папки «Входящие», она работает нормально, но она позволяет читать всю электронную почту в папке «Входящие» Первичные, социальные и рекламные письма, как я могу получить только основную электронную почту.

using (ImapClient client = new ImapClient("imapHost", "imapPort", true))
{
    client.Login("Email", "Password", S22.Imap.AuthMethod.Auto);
    client.DefaultMailbox = "INBOX";
    IEnumerable<uint> uids = client.Search(SearchCondition.All());
    foreach (var uid in uids)
    {
        MailMessage message = client.GetMessage(uid, false);
    }
    client.Dispose();
}

пример

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Если вы переключитесь на MailKit , вы можете сделать это с помощью MailKit ImapFolder.Search () API:

using (var client = new ImapClient ()) {
    client.Connect ("imap.gmail.com", 993, SecureSocketOptions.SslOnConnect);
    client.Authenticate ("username", "password");

    client.Inbox.Open (FolderAccess.ReadWrite);

    foreach (var uid in client.Inbox.Search (SearchQuery.GMailRawSearch ("Category:Primary")) {
        var message = client.Inbox.GetMessage (uid);
    }

    foreach (var uid in client.Inbox.Search (SearchQuery.GMailRawSearch ("Category:Promotions")) {
        var message = client.Inbox.GetMessage (uid);
    }

    client.Disconnect (true);
}
0 голосов
/ 03 июля 2018

Я не знаю, позволит ли S22 определять пользовательские команды или параметры поиска или отправлять необработанные команды, но если это так, вы можете использовать Расширения IMAP GMail , чтобы использовать их пользовательский язык поиска:

Вот пример уровня протокола получения списка последних UID в основной категории:

a UID SEARCH SINCE 1-May-2018 X-GM-RAW "Category:Primary"
* SEARCH 25032 25033 25034 25035 25036
a OK SEARCH completed (Success)

А вот вкладка рекламных акций:

a UID SEARCH SINCE 1-May-2018 X-GM-RAW "Category:Promotions"
* SEARCH 25026 25028 25030 25031
a OK SEARCH completed (Success)
...