Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

using c# .net libraries to check for IMAP messages from gmail servers [closed]

Tags:

c#

.net

email

imap

Does anyone have any sample code in that makes use of the .Net framework that connects to googlemail servers via IMAP SSL to check for new emails?

like image 650
Belliez Avatar asked Feb 13 '09 12:02

Belliez


People also ask

What is C in used for?

C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...

How do I use C on my computer?

It is a bit more cryptic in its style than some other languages, but you get beyond that fairly quickly. C is what is called a compiled language. This means that once you write your C program, you must run it through a C compiler to turn your program into an executable that the computer can run (execute).

Is C used nowadays?

There is at least one C compiler for almost every existent architecture. And nowadays, because of highly optimized binaries generated by modern compilers, it's not an easy task to improve on their output with hand written assembly.

Is C easy to use?

It is hard to learn because: It has complex syntax to support versatility. It is a permissive language—you can do everything that's technically possible, even if not logically right. It is best learned by someone who already has a foundation with C programming.


1 Answers

I'd recommend looking at MailKit as it is probably the most robust mail library out there and it's Open Source (MIT).

One of the awesome things about MailKit is that all network APIs are cancelable (something I haven't seen available in any other IMAP library).

It's also the only library that I know of that supports threading of messages.

using System; using System.Net; using System.Threading;  using MailKit.Net.Imap; using MailKit.Search; using MailKit; using MimeKit;  namespace TestClient {     class Program     {         public static void Main (string[] args)         {             using (var client = new ImapClient ()) {                 using (var cancel = new CancellationTokenSource ()) {                     client.Connect ("imap.gmail.com", 993, true, cancel.Token);                      // If you want to disable an authentication mechanism,                     // you can do so by removing the mechanism like this:                     client.AuthenticationMechanisms.Remove ("XOAUTH");                      client.Authenticate ("joey", "password", cancel.Token);                      // The Inbox folder is always available...                     var inbox = client.Inbox;                     inbox.Open (FolderAccess.ReadOnly, cancel.Token);                      Console.WriteLine ("Total messages: {0}", inbox.Count);                     Console.WriteLine ("Recent messages: {0}", inbox.Recent);                      // download each message based on the message index                     for (int i = 0; i < inbox.Count; i++) {                         var message = inbox.GetMessage (i, cancel.Token);                         Console.WriteLine ("Subject: {0}", message.Subject);                     }                      // let's try searching for some messages...                     var query = SearchQuery.DeliveredAfter (DateTime.Parse ("2013-01-12"))                         .And (SearchQuery.SubjectContains ("MailKit"))                         .And (SearchQuery.Seen);                      foreach (var uid in inbox.Search (query, cancel.Token)) {                         var message = inbox.GetMessage (uid, cancel.Token);                         Console.WriteLine ("[match] {0}: {1}", uid, message.Subject);                     }                      client.Disconnect (true, cancel.Token);                 }             }         }     } } 
like image 105
jstedfast Avatar answered Oct 10 '22 18:10

jstedfast