public static void Run() { //ExStart: 1 ImapClient imapClient = new ImapClient(); imapClient.Host = "<HOST>"; imapClient.Port = 993; imapClient.Username = "******"; imapClient.Password = "******"; imapClient.SupportedEncryption = EncryptionProtocols.Tls; imapClient.SecurityOptions = SecurityOptions.SSLImplicit; ImapQueryBuilder imapQueryBuilder = new ImapQueryBuilder(); imapQueryBuilder.HasNoFlags(ImapMessageFlags.IsRead); /* get unread messages. */ MailQuery query = imapQueryBuilder.GetQuery(); imapClient.ReadOnly = true; imapClient.SelectFolder("Inbox"); ImapMessageInfoCollection messageInfoCol = imapClient.ListMessages(query); Console.WriteLine("Initial Unread Count: " + messageInfoCol.Count()); if (messageInfoCol.Count() > 0) { imapClient.FetchMessage(messageInfoCol[0].SequenceNumber); messageInfoCol = imapClient.ListMessages(query); // This count will be equal to the initial count Console.WriteLine("Updated Unread Count: " + messageInfoCol.Count()); } else { Console.WriteLine("No unread messages found"); } //ExEnd: 1 Console.WriteLine("ImapReadOnlyMode executed successfully."); }
public static void Run() { // Connect and log in to POP3 const string host = "host"; const int port = 143; const string username = "******"; const string password = "******"; ImapClient client = new ImapClient(host, port, username, password); try { // ExStart:GetEmailsWithTodayDate // Emails that arrived today MailQueryBuilder builder = new MailQueryBuilder(); builder.InternalDate.On(DateTime.Now); // ExEnd:GetEmailsWithTodayDate // Build the query and Get list of messages MailQuery query = builder.GetQuery(); ImapMessageInfoCollection messages = client.ListMessages(query); Console.WriteLine("Imap: " + messages.Count + " message(s) found."); builder = new MailQueryBuilder(); // ExStart:GetEmailsOverDateRange // Emails that arrived in last 7 days builder.InternalDate.Before(DateTime.Now); builder.InternalDate.Since(DateTime.Now.AddDays(-7)); // ExEnd:GetEmailsOverDateRange // Build the query and Get list of messages query = builder.GetQuery(); messages = client.ListMessages(query); Console.WriteLine("Imap: " + messages.Count + " message(s) found."); builder = new MailQueryBuilder(); // ExStart:GetSpecificSenderEmails // Get emails from specific sender builder.From.Contains("[email protected]"); // ExEnd:GetSpecificSenderEmails // Build the query and Get list of messages query = builder.GetQuery(); messages = client.ListMessages(query); Console.WriteLine("Imap: " + messages.Count + " message(s) found."); builder = new MailQueryBuilder(); // ExStart:GetSpecificDomainEmails // Get emails from specific domain builder.From.Contains("SpecificHost.com"); // ExEnd:GetSpecificDomainEmails // Build the query and Get list of messages query = builder.GetQuery(); messages = client.ListMessages(query); Console.WriteLine("Imap: " + messages.Count + " message(s) found."); builder = new MailQueryBuilder(); // ExStart:GetSpecificRecipientEmails // Get emails sent to specific recipient builder.To.Contains("recipient"); // ExEnd:GetSpecificRecipientEmails //ExStart: GetMessagesWithCustomFlags ImapQueryBuilder queryBuilder = new ImapQueryBuilder(); queryBuilder.HasFlags(ImapMessageFlags.Keyword("custom1")); queryBuilder.HasNoFlags(ImapMessageFlags.Keyword("custom2")); //ExEnd: GetMessagesWithCustomFlags // Build the query and Get list of messages query = builder.GetQuery(); messages = client.ListMessages(query); Console.WriteLine("Imap: " + messages.Count + " message(s) found."); } catch (Exception ex) { Console.WriteLine(ex.Message); } }