Understanding Google Mail API Quotas - email

I can't make any sense of the official quotas for using the Mail API:
https://cloud.google.com/appengine/quotas?csw=1#Mail
Looks like I can make 7,000 API calls/day or 32 calls/minute, but I can only send 8 message/minute. So I should make either 1 API call/minute sending 8 emails, or make 8 API calls/minute each sending 1 email?
Are developers really supposed to drip messages at a rate of 8 emails per minute?

So I should make either 1 API call/minute sending 8 emails, or make 8 API calls/minute each sending 1 email?
Either of them is fine, do whatever makes sense for your app (within the quota limits).
Are developers really supposed to drip messages at a rate of 8 emails per minute?
For a large number of apps this is more than enough. For those which need more than that alternative solutions are available. See GAE increase recepients emailed limit.

Related

How to send any amount of emails? My own server or third party service?

I am working on a project where I want to allow my clients send a large amount of emails at any given time.
The issue I am having is that usually hosts have a very limited amount of emails allowed to send.
At the moment I am using third party service called Mailgun and it works fine but it is rather expensive since I have to send up to 300 000 emails per months and the number is growing.
Even if I rent a virtual server for example on scaleway where I have to set everything up myself, they have limitations.
Or are those limitations if I use their smtp?
Can anyone clear this one for me?
So my questions are:
Can I create my own smtp or any other way to send emails?
Is it possible to set up my own server and email server and send emails without any limitations?
If yes can you give me a tutorial or a course on that?
Or is it too much of a headache to do it myself and I should stick to third party services?
Thank you!
SMTP is not and headache but IP reputation management is. That's why most hosting providers limit SMTP usage and third party service florish.
As for the question "should I stick to third party ?", there is no right answer possible, only opinions:
If your emails are information requested by users (like forgot my password stuff, or notifications) you could use your own servers, because your IP reputation is going to be good.
If you send marketing stuff, all I can say is that my biggest customers all rely on third party services. Probably for good reasons

Sending Mails to more than 100 recipients with Google App Script

I coded a little script, that forwards mails to a mailing list (with ~80 recipients)
The problem is the 100/day quota limit (as seen here)
The script would be pretty useless if I can forward 1 and a half emails per day...
Can I somehow increase that limit?
If not, do you have any other ideas on how to forward the mails to ~80 recipients without this limit?!
Google explicitly doesn't want you using Apps Script for this kind of thing, which is why the limits are low.
You should use a service designed to send mass emails and forward to that from your apps script.
For example, create a Google Group with your 80+ recipients, then forward the emails to that Group. Or look into other mail-blast tools such as Mailchimp.

Mandrill: How long do I wait before assuming deliverability?

I've set up a Mandrill webhook which will update my app whenever an email hard-bounces or is rejected, so I don't keep that particular email address in my database. The way it works is this: a user gives me an address, I send him a confirmation, and if I don't hear from Mandrill's webhook in 30 minutes, I assume it's OK.
So I ran a some tests with non-existing addresses, and they didn't go too well. Most of them appeared as delivered for hours, long after I'd assumed they were fine.
Also, I didn't account for the delay in receiving webhook batches. One mail bounced at 2:01pm, according to the outbound activity logs, but the webhook history shows a batch being sent only at 2:52pm.
My questions is: how long should I delay my app's assumption of deliverability in order to give Mandrill enough time to detect hard-bounces / rejections and then send me webhook batches? I can live with letting some 5% bad emails going by because of delayed in processing on peak-time or other extraordinary events, but it seems like my 30 minutes isn't enough to catch anything at all...
Not the answer you're looking for, but Mandrill doesn't let you do this. The only way of checking if an email has been delivered is to poll Mandrill (with the message/info.json API). To see if the message is delivered you have to check the smtp_events and look for an event with diag starting with 250. As you've already experienced it may take a long time between delivery and when a message is accessible through the API. In my experience the normal case is around 10 minutes, but it might take many, many hours (this is the case for bounced emails as well as emails that got delivered immediately).
If it is important to you to know when an email is delivered, I would recommend you to switch to another email provider. There are plenty of different ones out there. I've personally used Amazon SES. They're cheaper than Mandrill, and you can expect a delivery notification after a second or so. Do note that Amazon SES is a bit more bare-bone than Mandrill (they don't have support for open/click-tracking, templating, dedicated IP, etc.), so it might not be the right provider for you.

Reduce time spent sending emails from days to hours

A client sends out monthly emails to about 1 million users which will grow with time. They currently send through an in-house exchange server.
Their current approach starts with first preparing all emails, recipients and attachments, then a script starts feeding the exchange server. Sending just a million mails generally takes days.
My role is to propose a better approach/solution that can get these emails sent and possibly delivered within hours. The choice of using 3rd party services like amazon ses and sendgrid exists but what will make the delivery time reduce as required.
I'll start this with two disclaimers: 1) I am a SendGrid employee, 2) This question is right on the border of questions StackOverflow doesn't like.
That said, both SES or SendGrid will be able to process emails at a rate much faster than 1 million over several days.
Speaking for SendGrid, we accept all mail passed to us and queue it on our end, so if you're able to send a million emails at us in a second, we'll accept them and deal with queueing on our servers. So that answers the question of how fast you can get the mail away from you; leaving the question of how fast it will get to your users.
That's a harder question and depends on a number of factors, including if we're receiving negative feedback from email providers (Google, Yahoo, Comcast, etc.), and your typical send volume. All said, it could take anywhere from a few minutes to a few hours, but days is definitely unheard of.
As far as I know SES will do something of the same nature. SES enforces client side send rates (meaning you'll need to send them only N emails per period), but this can be upped greatly depending on your volume and trust. Again, as far as I know, SES should take anywhere in the neighborhood of minutes to hours to process and send 1m emails.

Send over 1000 emails per day via gmail, amazon sns, or own smtp

I'm trying to code a mail sender service. Previously I built a simple desktop application which uses my shared hosting mail server to send html mails. But now it's not enough and I plan switching to Gmail or Amazon SNS.
For Gmail I have to use min 15 different accounts to be able to send up to 1500 emails. Also sometimes gmail blocks the accounts and I have to login and change the passwords.
I've just signed up for Amazon SNS but it does not looks to what I need. You first have to subscribe users then send emails. Also emails are sent from no-reply#sns.amazonaws.com addres. Is this the all service or I can configure it as I wish?
I also read some suggestions to lookup the MX records for the destination mail servers How to send 1000+ emails per day using an ASP.NET Web site
I want a minimum cost solution. So which is best and is there a better solution?
We use Mailjet for 3 sites now. Initially we used the free plan (6000 / month) to test the set-up and reporting. Now the 3 sites are run on it. Very satisfied - especially since they offer dedicated IP monitoring. According to us, it's rather easy to install. SMTP very easy and one of the sites integrates with the API. I'd recommend
There are a multitude of services available for you that will allow you to send 1500+ emails per day and will get the headache of email deliverability off your plate.
PostageApp (Ours!)
SendGrid
Postmark App
Deliver
Mailjet
Take a look and see which fit your needs and have the implementation method that you are looking for. They each have a free service, so it's definitely easy to try.
(Full Disclosure: I am the Product Manager of PostageApp. Let me know if you have any questions!)
A relatively new option for transaction emails that seems pretty good from Mailchimp:
Mandrill
Looks like it has decent integration with their main service as well.
You can utilize some premium services to send 1000 emails here, daily for free
Remember, you should not spam in the services listed, just you create multiple lists in all accounts & send emails daily.