Count number of emails in gmail using IMAP
Can anyone tell me how I can get the number of unread items in my inbox from gmail using imap or something else and display it in a label in C# WinForms?
I tried using atom开发者_如何学C feeds, but never could get it
Here is what I want to look like, if it helps:
SOLVED
Here is the code i used with the ImapX component:
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;
}
i just had to covert the int to a string and show the string (unseen) in the button. Thanks to quantumSoup for pointing me in the right direction
You probably want to find all messages with the UNSEEN
flag set.
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;
精彩评论