web-dev-qa-db-ja.com

トランザクションメールではなく、バルクメール用のAmazon SES(シンプルメールサービス)?

Amazon SES(Simple Email Service)は、「拡張性が高く、費用対効果の高いバルクおよびトランザクションのEメール送信サービス」と自称しています。

収集できるすべてのものから、AWS SDKとSESガイドおよびAPIを熟読することで、トランザクションメール(つまり、1回限りの方法で送信されるアプリケーションメール)には最適に見えますが、一括メールについては何も見つかりません。

価格に基づいて、Amazonは明らかに顧客が非常に大量のメールを送信することを望んでいます/必要としています。

(Amazon SESを実装している人として)Eメール送信ごとに個別に電話をかけることを期待していますか?

つまり、マーケティングメールを200,000の受信者に送信する場合、curl(またはその他)またはAWS SDKを使用してSendEmailまたはSendRawEmailに実際に200Kのリクエストを送信しますか?

これは実用的ではないようです。

24
Josh

ドキュメントには、メッセージごとに 最大50人の受信者を追加できます と明記されています。したがって、送信者リストをバッチに分割できます。 20万人の受信者の場合、4kのAPI呼び出しを行う必要があります。バルクメールにはそれほど便利ではありません。アマゾンはこの特定の用途のために彼らのサービスを方向付けていないと思います。

8
alexfernandez

NuclearDogに感謝します。さらに検討すると、質問に対する答えは、APIをx回繰り返し呼び出すことだと思います(以下のSES FAQから)。

20万通のメールを送信しているとしましょう。まず、1つのメールに追加できる「ToAddresses」の数の現実的な制限を知りたいと思います。それがわかったら、一度に100個程度の「ToAddresses」のグループにバッチ送信することができます。

第二に、ほとんどの一括メールと同様に、内容は「こんにちは」のイントロであっても、受信者ごとにわずかに異なります。郵送の本文は同様ですが、電子メールごとにパーソナライズされることを考えると、APIを何度も呼び出すことが期待されていると思います。 1回の呼び出しで複数のメールをキューに入れてから送信する方法があるのではないかと考えていましたが、APIの性質上、これは現実的ではない可能性があります。

SESは、Amazon AWSデータベース製品の1つを使用して、この方法でもう少しスケーラブルにすることを目的としています。

今のところ、すべてのapi呼び出しが1)一日中かからず、2)システムに過度の負担をかけないように、効率的にapiX回を呼び出すためのキューまたはメッセージシステムを実装する必要があると思います。 。

Q:Amazon SESを使用してバルクメールを送信できますか?はい。送信するメールごとに、SendEmailまたはSendRawEmailAPIを繰り返し呼び出すだけです。 Amazon EC2、Amazon Elastic MapReduce、または独自のサーバーで実行されているソフトウェアは、ビジネスに最適な方法でAmazonSESを介して一括メールを作成および配信できます。独自のバルクメールソフトウェアを既にお持ちの場合は、Amazon SESを介して配信するように更新するのは簡単です。ソフトウェアを変更して、Amazon SESを直接呼び出すか、上記のようにAmazon SESSMTPリレーを介してメールを配信するように再構成します。

5
Josh

APIリファレンス を見ると、リクエストごとに一度に複数のアカウントに送信できるように見えます。

SendEmailには、「Destination」タイプの「Destination」の引数が必要です。

宛先には、ToAddresses、CCAddresses、BCCAddressesの3つのプロパティがあります。これらはすべて「文字列リスト」タイプです。

開発者ガイドのリクエストの例を見ると、次のような引数として宛先アドレスが指定されていることがわかります。

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

私は手足に出かけて、次のような形式の複数のアドレスを期待している「文字列リスト」を推測します。

&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

私は実際にあなたの質問に出くわし、SESに関する私自身の質問のいくつかに対する答えを探しました-まだドキュメントは十分に使用できますが、必ずしもひどく役立つとは限りません-答えを得るためにいくつかの楽しい推論をしなければならないことがよくあります-公正ですあなたへの警告!

乾杯!

編集:私があなたの自己回答に投稿した引用から引き出した可能性のあるもう1つのこと:

ソフトウェアを変更してAmazonSESを直接呼び出すか、上記のようにAmazon SES SMTPリレーを介してEメールを配信するように再構成します。

独自のSMTPサーバーをセットアップし、それをSESを介してリレー/転送するだけの場合は、キューイングなどを処理する可能性があります。数千通の電子メールを送信するだけで、SMTPサーバーがAmazonに到達する前にキューイングなどを処理します。

5
NuclearDog

Simple Queue Service を使用してバルクメールを送信できます。

2
xmarcos