1

クライアントに E メールを送信するために Amazon-SES API を使用しています。これは非常に成功していますが、クライアントごとに異なるボディを送信する必要があります。200.000 クライアントについてメールを送信し始めると、以下のコードはどのようになりますか? ループは 200.000 回ですか、それともオブジェクトを準備して 1 回送信できますか (n:n システムのように、現在は 1:n です)。

var clientList=new List<String>(); //200.000 mail adress
foreach(var to in clientList)
{
        SendEmailRequest email = new SendEmailRequest();
        email.Message = new Message();
        email.Message.Body = new Body();
        email.Message.Body.Html = new Content(bodyhtml);
        email.Message.Subject = new Content(subject);

        email.WithDestination(new Destination() { ToAddresses = new List<String>() { to } })
        .WithSource("mysite@mysite.com")
        .WithReturnPath("mysite@mysite.com");

        SendEmailResponse resp = client.SendEmail(email); //that's 1:n
}

SendEmailResponse resp = client.SendEmail(emailList); //that's n:n but it's a wrong usage

Amazon SES で n:n アルゴリズムを送信するにはどうすればよいですか?

アプリケーションは Asp.net MVC 3 です。非同期コントローラーを使用できますか? それは良い考えですか?

4

1 に答える 1

2

すでにAmazonSESの本番アクセスがあり( Amazon SESのテストと評価が終了したらどうすればよいですか?を参照)、最初に200.000メール/日を送信するために送信クォータを十分に増やしたと仮定します(AmazonSESが送信を設定する方法を参照)制限)、SendEmailアクションのそれぞれの制限が文書化されています。

メッセージの合計サイズは10MBを超えることはできません。

Amazon SESには、メッセージあたりの受信者の総数に制限があります 。To:、CC:、およびBCC:のEメールアドレスの合計数は50を超えることはできません。より多くのオーディエンスにEメールメッセージを送信する必要がある場合は、受信者リストを50以下のグループに分割し、AmazonSESを繰り返し呼び出して各グループにメッセージを送信できます。[強調鉱山]

注意:この種の大量メール送信操作にのみ使用することを強くお勧めしますBcc:。そうしないと、ユーザーは自分のメールアドレスが互いに公開されているのを確認でき、まったく面白がらないことを保証できます。

したがって、一度に50人の受信者がいるメール準備Bcc:し、ユースケースの送信メール量を約4.000に減らすことができます。これは、すでにかなりの改善です。ただし、送信制限の増加に対するそれぞれのAWSチームの応答、およびFAQに関する質問に注意してください。

複数のISPに送信する場合[...]、特定のISPはBCC:回線の複数のアドレスに大量に敏感であるため、一度に1つのアドレスに送信することをお勧めします。[強調鉱山]

この警告が適用されるかどうかは、通常のユースケースによって異なります(たとえば、ISPなどでメールをシャーディングできる場合があります)。

非同期で行うことは問題なく、おそらく便利ですが、最大送信速度(メール/秒)の制限内にとどまるようにする必要もあります。これらの制限は、AWS Management Consoleの[SES]タブに表示されますが、もちろんAPIからも利用できます(詳細については、送信制限のモニタリングを参照してください)。

于 2012-05-14T12:53:17.537 に答える