Is there an Gmail API call that corresponds to "Check mail from other accounts > Check mail now"?
Neither Gmail API nor Apps Script's GmailApp have a way to force to update the messages from the other accounts pulled with POP3.
There may be an easy way to update those accounts from the app. Asking how to do this may bring people that knows how to do so and may be able to help you (but that know nothing about Gmail API) :)
As a side note, if you don't find a way of doing it, you may request Google to implement a refresh method in their Gmail API.
References
Gmail API resource summary (Gmail API reference)
Class GmailApp (Apps Script reference)
Getting started (Google Issue Tracker documentation)
Related
I am currently sending email via the Gmail API using the Google Node SDK. I am successful in doing so, but my application requires that I be able to attach specific identifiers to emails that I send in order to be able to track and process certain events correctly.
I have heard of custom metadata being added to emails sent through other services such as Mailchimp, Postmark, etc so it seems like some sort of standard to be able to do this in email. I however, have not been able to find how to do this via the Gmail API specifically. Is this even possible?
Answer:
No, you cannot add custom application data to messages sent via Gmail API.
Reference:
The corresponding Message resource doesn't include any property for custom metadata.
And the related methods send and insert don't allow this either.
Issue Tracker:
A related feature request was reported in Issue Tracker, I'd suggest you to star it:
Add Custom Metadata to Email Messages via Gmail Api
Workaround:
I'd suggest you to use labels to identify messages.
I set up an Azure SendGrid resource in my company's Azure subscription, got my API key and wrote a C# script to send emails. It works, but the emails go to spam with an SCL=6. I expect this is because I am doing no domain authentication. (Please bear with me as I try to describe my situation, I'm still learning a lot about all this). I am sending the emails through my work/enterprise email account (XYZ#company.com) and they are going to other enterprise accounts on the same domain (company.com). My company is a large tech company with a very well known domain. I am just a user on the enterprise network as a normal vendor/employee, with this setup I don't know how I would touch DNS/SPF/DKIM options, which from what I've been reading are the main first steps to authenticate myself as the sender.
I guess my main question is: Can SendGrid be a possible solution to what I am trying to do? I want to send ~250 emails programatically, each from a template so I can substitute in recipient name and specific info, and I can do all that through C#. But is there a way I can authenticate myself so my emails do not go to spam? If not, are there alternative solutions? I'm just trying to avoid having to manually send ~250 customized template emails through Outlook.
Let me know if I need to provide more info, all answers are appreciated! Thank you!
I am using smtp.gmail.com to send mails.
I want to read/parse mails in my application.
I know how to pull the mails, there are API libraries to handle that. It is bit over do for my application.
Instead, is there any way gmail can post mails to my application like sendgrid does ?
If you want to get emails from a gmail account, and want a webhook to do such, you could use Context.io's Webhook Feature.
However, at the maximum volume you'll be able to send out with Gmail, I'd recommend looking toward an email service provider's free plan. If you're familiar with SendGrid already SendGrid's Free Plan will give you access to both low volume sending, and the Parse webhook. Other email service providers will give you the same functionality on their free plans, as well (e.g. Mailgun).
Disclaimer: I am a SendGrid employee.
I know there's an API for a Gmail plugin in your browser. Is there one for the server? For example, if I want to write an anti-virus app that reads emails coming in to an account on the server, then let's them continue or quarantines them - all before the user ever sees them?
Obviously it would have to be authorized for the users it did this for.
EDIT: As of 26/06/2014, this answer has become incorrect, as Google just released a dedicated API to GMail. See the link in this post for reference.
Original answer below this line :
From a technological perspective, it's a mail server just like any other.
Thus, your choice should fall on a mail protocol. It's also already answered in the question you linked: https://stackoverflow.com/a/2820280/1680196
Your app would open an IMAP connection to your mail server of choice (in this case gmail), scan for incoming mail, read the content and trigger a delete / move to trash if necessary.
Personally, I wouldn't trust any app like this running outside my own mailserver / mail client, since this use case requires full read and write access to a users mails.
There might be some API for Google Apps for Domains mail accounts, but I doubt this goes beyond the RSS mail notifications.
Edit: Official Google api documentation also refers to IMAP for accessing user inboxes. Link to IMAP OAuth overview. With application specific passwords users could enable your app to access their account without exposing their actual credentials, but beyond that I fear you are out of luck.
There is an HTTP REST API now!
http://developers.google.com/gmail/api/
(And has been for years if you were willing to use IMAP. :-D)
I have a requirement where I have to count all sent email by users belonging to a domain that they manage with google. All email is of course managed with gmail.
Although this task initialy seemed trivial, there doesn't seem to be a way to do this directly, meaning through some API call.
Any ideas?
Thanks
Stelios
As far as I know the Gmail API doesn't offer access to the total of send items.
Tthe g4j project (written in Java) reverse engineered Gmail's protocol in order to access an account using HTTP calls. However, the solution is fragile since it could be easily broken whenever Gmail decides to change its HTTP protocol.
Screenshot of a Java application build on top of g4j:
It's not easy but there is a way to access a gmail account.