Download emails from Gmail

gmail
The task is quite easy with Mail.dll IMAP client.
IMAP protocol unlike POP3 stores the unseen information on the server. So all we need to do is connect via SSL, search for unseen emails, and download them. Mail.dll will do all the hard work.

First thing to remember is to enable IMAP in Gmail, second is to use ConnectSSL method, as Gmail allows only secure SSL connections.

We’ll use Imap.Search(Flag.Unseen) method to download unique ids of all unseen email messages in our inbox. Finally the sample shows how to download such emails and parse them using MailBuilder class. After this it is easy to access any email data like: Subject, Date, From and To collections, plain-text and HTML versions of the email. Also all Attachments are downloaded and stored in IMail.Attachments collection.

// C# code:

using(Imap imap = new Imap())
{
	imap.ConnectSSL("imap.gmail.com");
	imap.Login("pat@gmail.com", "password");

	imap.SelectInbox();

	List<long> uids = imap.Search(Flag.Unseen);
	foreach (long uid in uids)
	{
		string eml = imap.GetMessageByUID(uid);
		IMail mail = new MailBuilder().CreateFromEml(eml);

		Console.WriteLine(mail.Subject);
		Console.WriteLine(mail.Text);
	}
	imap.Close();
}

' VB.NET code:

Using imap As New Imap()
	imap.ConnectSSL("imap.gmail.com")
	imap.Login("pat@gmail.com", "password")

	imap.SelectInbox()

	Dim uids As List(Of Long) = imap.Search(Flag.Unseen)
	For Each uid As Long In uids
		Dim eml As String = imap.GetMessageByUID(uid)
		Dim mail As IMail = New MailBuilder().CreateFromEml(eml)

		Console.WriteLine(mail.Subject)
		Console.WriteLine(mail.Text)
	Next
	imap.Close()
End Using

If you like the idea of such simple Gmail access just give it a try for yourself and download Mail.dll .NET IMAP component.

Tags: , , , ,

11 Responses to “Download emails from Gmail”

  1. Blog » Blog Archive » Download emails from GMail via POP3 Says:

    [...] Mail.dll has of course IMAP support [...]

  2. A connection attempt failed Says:

    [...] articles can help you with that: How to enable POP3 for Gmail How to enable IMAP for Gmail How to enable IMAP for [...]

  3. GMail’s POP3 behavior Says:

    [...] Mail.dll contains ready to use IMAP client. Take a look at the IMAP sample. [...]

  4. Matias Espinosa Says:

    Id like to know how to keep messages in my GMAIL INBOX marked as UNREAD, using this procedure.

  5. Limilabs support Says:

    @Matias,

    You can use PeekMessageByUID method if you don’t want the message to be marked as seen after download.

  6. David Says:

    You may know the old read mail in GMAIL? I have to compare all the emails?
    or I can run a query?

  7. Limilabs support Says:

    @David

    You can search for certain flags (seen, unseen),
    you may also search using Gmail’s search syntax.

  8. peace Says:

    How can I check my Gmail inbox?

  9. Limilabs support Says:

    @Peace

    What is your problem exactly?

  10. Kaushik Says:

    Does it is possible to mark the unseen mail as seen in gmail. That is once the unseen mail will be read then and then it will mark in gmail server. So that from next time always the unseen mails will be received.

  11. Limilabs support Says:

    @Kaushik

    You can either peek email on the server, by using one of the PeekXXX methods (e.g. PeekMessageByUID), as they don’t change the state of the message on the server
    -or-
    you can mark message seen or unseen explicitly.

Leave a Reply