Подсчет количества писем в gmail с помощью IMAP

может ли кто-нибудь сказать мне, как я могу получить количество непрочитанных элементов в моем почтовом ящике из gmail с помощью imap или чего-то еще и отобразить его в метке в C# WinForms?

Я пытался использовать каналы atom, но никогда не мог получить его

вот как я хочу выглядеть, если это поможет:

Inbox(1)

2 ответов


вы, вероятно, хотите найти все сообщения с UNSEEN установить флаг.

Imap imap = new Imap();
/* connect, login, etc. */
imap.Connect(...);
/* fill login and select folder code */

List<long> unseenList = imap.SearchFlag(Flag.Unseen);

// now you can get the count from unseeList
int unread = unseenList.Count;

решить

вот код, который я использовал с компонентом ImapX:

 ImapX.ImapClient client = new ImapX.ImapClient("imap.gmail.com", 993, true);
        bool result = false;

        result = client.Connection();
        if (result)
            MessageBox.Show("Connection Established");

        result = client.LogIn(textBox1.Text, textBox2.Text);
        if (result)
        {
            MessageBox.Show("Logged in");
            ImapX.FolderCollection folders = client.Folders;
            ImapX.MessageCollection messages = client.Folders["INBOX"].Search("UNSEEN", true); //true - means all message parts will be received from server

            int unread = messages.Count;
            string unseen = unread.ToString();
            button1.Text = unseen;
        }

Мне просто нужно было скрыть int в строку и показать строку (невидимую) в кнопке. Спасибо quantumSoup за то, что указал мне в правильном направлении