开发者

Amazon SES (Simple Email Service) for bulk e-mail, NOT for transactional e-mails? [closed]

开发者 https://www.devze.com 2023-02-08 17:16 出处:网络
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.

We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.

Closed 6 years ago.

Improve this question 开发者_如何学C

The Amazon SES (Simple Email Service) self-described as a "highly scalable and cost-effective bulk and transactional email-sending service".

From everything that I can gather, and by perusing the AWS SDK as well as the SES guides and API, it looks great for transactional emails (i.e. application emails sent in a one-off fashion), but I cannot find anything about bulk emailing.

Based on the price-point, Amazon clearly wants/needs customers to send very large quantities of mail.

Is the expectation that you (as someone implementing Amazon SES) make individual calls per email send?

i.e. If you are sending a marketing email to 200,000 recipients, do you really make 200K requests to the SendEmail or SendRawEmail via curl (or whatever) or using the AWS sdk?

This seems impractical.


The docs now clearly state that you can add up to 50 recipients per message. So you can divide up your sender list in batches; for 200k recipients you would have to make 4k API calls. Not terribly convenient for bulk mails; I would guess Amazon is not orienting their service for this particular use.


If you take a look in the API reference it would certainly look like you can send to more than one account at a time per request.

SendEmail requires an argument of 'Destination' of type 'Destination'.

Destination has three properties: ToAddresses, CCAddresses, BCCAddresses - all are of type "string list".

If you look at the example requests in the Developer Guide, you'll see it specified the destination addresses as an argument similar to:

&Destination.ToAddresses.member.1=allan%40example.com

I'm going to go out on a limb and guess for a 'string list' they're expecting multiple addresses in a format similar to:

&Destination.ToAddresses.member.1=allan%40example.com
&Destination.ToAddresses.member.2=other%40example.com
&Destination.ToAddresses.member.3=asdfq%40example.com
...
&Destination.ToAddresses.member.1000=final%40example.com

I actually stumbled across your question looking for answers to some of my own questions about SES - as of yet the docs are complete enough to use, but not always terribly helpful - you often have to make some fun inferences to get answers - just a fair warning for you!

Cheers!

Edit: One other thing that might be possible I pulled from the quote you posted in your self-answer:

either by modifying the software to directly call Amazon SES, or reconfiguring it to deliver email through an Amazon SES SMTP relay as described above.

If you set up your own SMTP server, and just have it relay/forward through SES, that might handle your queuing/etc. You can just shoot out a few thousand e-mails and your SMTP server will handle queuing/etc before it hits Amazon.


Thanks NuclearDog, Upon further review, I think the answer to the question is to call the api repeatedly, x times (below from the SES FAQ).

Lets say we are sending out 200K mailings. First, I would be very interested to know the realistic limit for how many "ToAddresses" we can tack on to one mailing. Once we know that, we could maybe batch sends into groups of 100 or so "ToAddresses" at a time.

Second, as with most bulk mailings, the content is slightly different per recipient, even if it is just a "Hello ," intro. Given that the mailing body will, while similar, will have personalization per email, I believe the expectation is simply to call the api over and over. I was thinking perhaps there would be some way to queue up multiple emails with one call, then do a send, but this is likely not realistic given the nature of the API.

SES is probably intended to be a bit more scalable in this fashion using one of the Amazon AWS database products.

For now, I think I would have to implement a queue or message system to call the api X times in an efficient so that all the api calls 1) don't take all day, and 2) don't tax our systems too much.

Q: Can I use Amazon SES to send bulk email? Yes. Simply call the SendEmail or SendRawEmail APIs repeatedly for each email you would like to send. Software running on Amazon EC2, Amazon Elastic MapReduce, or your own servers can compose and deliver bulk emails via Amazon SES in whatever way best suits your business. If you already have your own bulk mailing software, it’s easy to update it to deliver through Amazon SES – either by modifying the software to directly call Amazon SES, or reconfiguring it to deliver email through an Amazon SES SMTP relay as described above.


You can use their Simple Queue Service to send bulk email.

0

精彩评论

暂无评论...
验证码 换一张
取 消