Gmail – Getting an individual email using its message_id from Gmail

atomemailgmailpop3

I get an ATOM feed from gmail with a list of messages. Each message entry in the ATOM feed includes a link like this:

<link rel="alternate" href="https://mail.google.com/mail?account_id=email_address&amp;message_id=big_number&amp;view=conv&amp;extsrc=atom" type="text/html"/>

Is there a way to get just that one message from gmail? I tried the obvious

https://mail.google.com/mail?account_id=email_address&amp;message_id=big_number&amp;view=conv&amp;extsrc=atom that just returns a redirect to login.

I also tried:
https://email_address:password@mail.google.com/mail?account_id=email_address&amp;message_id=big_number&amp;view=conv&amp;extsrc=atom but that returns forbidden 403.

I then tried to use OpenPop (Pop3 client) to retrieve a message; however, GetMessageUids() returns an empty list.

Is there a way to retrieve a specific email from gmail, ideally using https: as I tried above, or if not, then by using pop3? I already have a pop3 client retrieving all emails from gmail, so I don't want to interfere with that.

Best Answer

It turns out that using OpenPop to retrieve the entire message does work. It can 'miss' a message if another pop3 client has already downloaded it before OpenPop gets to it (that's why I saw GetMessageUids() return 0 - I was debugging step by step). One can get around this by prefixing one's username with "recent:" in Pop3Client.Authenticate(). This will download all messages received in the past 30 days. Long list for my user, but better than missing a message.