Following are the comments against each requirement:
 We have use cases like we need to do operate on different collection like Envelopes and Message ID collection which we need to compare messages and then download message accordingly.
Use following code for filtering the messages based on different queries:
IEWSClient client2 = GetEWSClient(); ExchangeMailboxInfo mailboxInfo = client2.GetMailboxInfo(); ExchangeQueryBuilder builder1 = new ExchangeQueryBuilder(); MailQuery qry2 = builder1.MessageId.Equals("<email@example.com>"); ExchangeMessageInfoCollection messages2 = client2.ListMessages(mailboxInfo.InboxUri, qry2);
 Is there any way to know Mailbox Status to know message count, unseen message ?
IEWSClient client = GetEWSClientTest3(); ExchangeQueryBuilder builder = new ExchangeQueryBuilder(); builder.HasNoFlags(ExchangeMessageFlag.IsRead); MailQuery query = builder.GetQuery(); ExchangeMessageInfoCollection messageInfoCol = client.ListMessages(client.MailboxInfo.InboxUri, query); Console.WriteLine("Count = " + messageInfoCol.Count);
 Also do we have any provision in any client [ IMAP or POP3 ] like to validate E-mail IDs ?
I am afraid that there is no such provision available which can be used to validate the Email Ids. However EmailValidator can be used to evaluate MailServer, SyntaxAndDomain and Syntax only of mail address.
Please feel free to write us back if you have any other query in this regard,
Thank you Muhammad Waqas for quick reply and suggestions. We will try to accommodate all suggested changes in our application.