Максимальная скорость отправки Amazon SES - PullRequest
1 голос
/ 05 марта 2012

Мы используем Amazon SES для отправки электронных писем, и он говорит, что наша максимальная скорость отправки составляет 5 в секунду.

Что я не могу выяснить, так это , что произойдет, если мы отправим более 5в секунду? Они ставятся в очередь или отклоняются?

У нас есть список рассылки, в котором более 1000 человек, и все они пытаются отправить все за один раз (и мы одобрили использование AmazonSES для этой цели).

Вот код, который я использую для отправки электронного письма:

namespace Amazon
{
    public class Emailer
    {
        /// <summary>
        /// Send an email using the Amazon SES service
        /// </summary>
        public static void SendEmail(String from, String To, String Subject, String HTML = null, String emailReplyTo = null, String returnPath = null)
        {
            try
            {
                List<String> to
                    = To
                    .Replace(", ", ",")
                    .Split(',')
                    .ToList();

                var destination = new Destination();
                destination.WithToAddresses(to);

                var subject = new Content();
                subject.WithCharset("UTF-8");
                subject.WithData(Subject);

                var html = new Content();
                html.WithCharset("UTF-8");
                html.WithData(HTML);

                var body = new Body();
                body.WithHtml(html);

                var message = new Message();
                message.WithBody(body);
                message.WithSubject(subject);

                var ses = AWSClientFactory.CreateAmazonSimpleEmailServiceClient("xxx", "xxx");

                var request = new SendEmailRequest();
                request.WithDestination(destination);
                request.WithMessage(message);
                request.WithSource(from);

                if (emailReplyTo != null)
                {
                    List<String> replyto
                        = emailReplyTo
                        .Replace(", ", ",")
                        .Split(',')
                        .ToList();

                    request.WithReplyToAddresses(replyto);
                }

                if (returnPath != null)
                    request.WithReturnPath(returnPath);

                SendEmailResponse response = ses.SendEmail(request);

                SendEmailResult result = response.SendEmailResult;
            }
            catch (Exception e)
            {

            }
        }
    }
}

Ответы [ 2 ]

3 голосов
/ 27 февраля 2013

Я думаю, что запрос отклоняется , если мы пытаемся отправить больше сообщений в секунду, чем допустимый предел.

Я нашел это в блоге SES http://sesblog.amazon.com/post/TxKR75VKOYDS60/How-to-handle-a-quot-Throttling-Maximum-sending-rate-exceeded-quot-error

Когда вы звоните в Amazon SES быстрее, чем ваша максимальная выделенная скорость отправки, Amazon SES будет отклонять ваши запросы о превышении лимита с ошибкой «Регулирование - превышена максимальная скорость отправки».

Ошибка «Удушение - превышена максимальная скорость отправки» повторяется.Эта ошибка отличается от других ошибок, возвращаемых Amazon SES, таких как отправка с адреса электронной почты, который не подтвержден, или отправка на адрес электронной почты, который находится в черном списке. Эти ошибки указывают на то, что запрос не будет принят в его текущей форме. Запрос, отклоненный с ошибкой «Регулирование», может быть повторен позднее и, вероятно, будет успешным.

Если бы они ставили запросы в очередь, это был бы отличный вариант, но наш опыт показывает, что они этого не делают.Пожалуйста, дайте мне знать, если я что-то не так понимаю.

3 голосов
/ 28 марта 2012

С тех пор я узнал, что ответом является то, что они отклонены.

...