Access to GMail mailbox content with google-api - google-api

Is there a way to access a Gmail Mailbox using the google-api? I'm trying to do this from command line using Java FWIW.
I already have code in place that achieves this via IMAP so that is not what I'm looking for.

You can access GMAIL IMAPS and SMTP using XOAUTH authentication, see here :
https://developers.google.com/gmail/xoauth2_protocol
It is not really the google-api-java-client, it is plain IMAP/SMTP but authentication is OAUTH2.

After going through the Google API once again and considering this question did not get an answer in the past 6 days, I guess it is safe to say there is no other way aside from IMAP/S.
NOTE:
This question was initiated because I was told by numerous people that a certain Google API was available and preferable for this purpose. It seems they were all informed by the same person who was not able to show me his source of information and agreed that according to the documentation IMAP indeed is the only API available as of now.

Related

SMS service for two-factor authentication in Rails

I have already implemented two-factor authentication using the tinfoil gem in Rails. It's using Google Authenticator to display the verification code to the user.
I would also like to implement sending the verification code to the user via SMS. I am wondering what is the best solution for this?
I have also searched around and found free SMS services for Rails like SMS FU and SMS-easy, but it seems like the gems are not active and they don't support a lot of the UK carriers.
So, should I resort to paid service like twilio?
Twilio developer evangelist here.
For something important like two factor authentication, where you need the messages to arrive or your user cannot log in, then I highly recommend a paid service.
StackOverflow is not exactly the right site to be asking for opinions on this sort of thing, it is more for code issues that can be solved. However, if you are interested in using Twilio for this and you find yourself with any questions about the service, you can contact me directly at philnash#twilio.com.

Gmail Api Mail Read Reciept

Is there a way to way to get read receipt of sent mail?
Like which mail is read and which one is unread?
Using google apis Rest.
Read Receipt is no available in current version of google mail api.
provide third party solutions.
As of now Read reciept is not available.
but you can always write custom code to implement task.
Well, if you check the Gmail API documentation you cannot find any guides here that can achieve this. I found here a related SO question that try to use Apps Script in achieving this, but it seems that the Apps Script is also not applicable. I suggest you to file a feature request about this if you still want to do it with the Gmail api.

A Google API to know which services are enabled?

I'm looking for a Google API call to know which services (Gmail in my case) are enabled for an organization or for a user.
The question has been asked without answer there : Google API for Google Services
Thanks!
If this existed, it would likely be in the Admin SDK rather than the Gmail API. That being said, I've never seen this and wasn't able to find any hint of it within the specific APIs within the SDK (would likely be in the Admin Settings API).
I am pretty sure this isn't possible via API currently.

How can I access Gmail's native API?

I would like to access Gmail's native API. Eg,
create a search folder
tag messages
other gmail-specific actions.
There's this similar question, however the question asker seems happy with developing contextual gadgets rather than actually accessing a user's email.
In before anyone mentions: IMAP and POP are generic, non search based protocols and do not provide full access to gmail. Neither gmail.com, nor any of the official Gmail native apps, use IMAP and POP.
Most webmail services have private, non-IMAP/POP APIs and protocols, eg, hotmail (back when it existed used HTTPMail which was reverse engineered and implemented by hotwayd).
I could run Android gmail with a proxy and attempt to reverse engineer the Gmail protocol itself, but I suspect others have had the same need in the past and may already have a solution.
I did find a list of client of Gmail clients on Gmail Agent API but they don't seem maintained past 2004.
Android's Gmail app is using Google Cloud Messaging (GCM) to push email messages/notifications and sync with the phone. I think that’s “the API” you are looking for. The bad news is that it is obviously very well protected.
You can get started for free with GCM's JSON REST API and use it for your push messaging projects, but forget about using it for your Gmail in the same fashion Google does. The only option for getting a similar efficiency would be using IMAP's IDLE extension, which uses also push.
Focusing on what you need, I think there are decent solutions for the use cases you have listed in your question… You could use a [**Google App Script**][4] or libs like [**GMail for Python**][5], which seems a valid option to me... from the [**GMail for Python GitHub**][6]:
Features
Search emails
Read emails
Emails: label, archive, delete, mark as read/unread/spam, star
Manage labels
If you are developing an Android mobile app Gmail Public Labels API could also be of your interest...
Hope it helps...
EDIT: Google just introduced its GMAIL API
Update June 2014: Google have announced access to the native gmail API.
The Gmail API gives you flexible, RESTful access to the user's inbox,
with a natural interface to Threads, Messages, Labels, Drafts, and
History. From the modern language of your choice, your app can use the
API to add Gmail features like:
Read messages from Gmail
Send email messages
Modify the labels applied to messages and threads
Search for specific messages and threads
https://developers.google.com/gmail/api/

How can I log into gmail in a script/program using HTTPS?

My teacher has given me as an assignment to log into gmail and then send one e-mail or read the list of unread e-mails, but I can't use IMAP/POP3/SMTP or anything that isn't HTTP or HTTPS. I've tried looking for libraries in Ruby/Java to do it but nothing really worked for me.
I tried looking at the gmail source code page but I couldn't really understand what was going on. The page seems to call a post method on a link, but sniffing the packets what I saw was a GET apparently using a session generated using the info I send. So sending it "raw" didn't work either.
I've no idea what to do now.
After you authenticate with OAuth, you can get unread emails via an atom feed.
URL to hit: https://mail.google.com/mail/feed/atom/[<label>]
You can toy around with this at the Google oauth playground. Get an access token by continually clicking buttons and authenticating, and then hit discover feeds.
If you want a Java OAuth library, signpost is really good. You'll need to read the google documentation on its open authentication scheme. Specifically, you need to pass a scope query parameter when you attempt to authenticate. This is nonstandard, and it will trick you up if you're not looking for it.
If you're confused about OAuth or why its necessary, you may want to check out this resource.
Check out httplib2—it has (among other things) Google Account Authentication.

Resources