Reputation: 14328
Is there any way to programmatically search GMail, preferably using C#?
For example, I'd like to get all email messages matching the search label:MyLabel from:[email protected], so that I can parse the email bodies as required.
The only thing remotely feasible I've found is the GMail API by Johnvey Hwang, though it doesn't look like it supports searching email and also hasn't been updated in many years either.
In any case, I haven't had much luck in getting it to even connect to my account so far, and was wondering if this even works anymore?
Upvotes: 8
Views: 5492
Reputation: 13860
it's 2015 now! You can use Google's Gmail API.
It has a search feature, you can do it easily just like this:
https://www.googleapis.com/gmail/v1/users/me/messages?q="in:sent after:2014/01/01 before:2014/01/30"
Upvotes: 2
Reputation: 14328
Eventually, I settled with using IMAPX, which works pretty well. Tried a few other IMAP libraries which weren't as powerful and seemed a bit flaky.
If anyone's interested, the outcome of this is iDevice App Reporter, which is a WinForms app that searches GMail (or any other IMAP mailbox) for iTunes app receipts and parses these to return a list of downloaded/purchased apps from the Apple AppStore.
Upvotes: 2
Reputation: 9630
To use a full gmail search (like multi labels, boolean operators) via IMAP, you need to use X-GM-RAW attribute. More on Google Apps docs.
Upvotes: 1
Reputation: 52207
Create an IMAP client, or use a library, to access Gmail and search for e-mail messages. The IMAP protocol explicitly supports searching on the server-side. Make sure IMAP access is enabled for the Gmail account.
Note that in Gmail, labels are treated like IMAP folders.
Upvotes: 8