Отправка массовых сообщений электронной почты с помощью AWS SES

Моя текущая настройка выглядит следующим образом:

У меня есть список клиентов, которым я хочу рассылать массовые электронные письма. В моем программном обеспечении у меня есть возможность отправить немедленно или запланировать время, когда оно должно быть отправлено. Я использую Laravel, поэтому я сохраняю данные электронной почты в своей базе данных с указанием времени и даты отправки, а затем настраиваю расписание в консоли kernel.php для проверки этой таблицы, и если есть электронные письма, которые должны быть отправлены, они будут отправлены.

Во-первых, я подтверждаю, что им не нужно ставить это в очередь в SQS, так как в основном моя установка ставит его в очередь (если нет преимуществ, о которых я не знаю)

Теперь я вижу, что есть два варианта:

  1. Я перебираю студентов и отправляю индивидуально в SES.
  2. Отправляйте через шаблон в AWS SDK и отправляйте электронные письма за один раз.

С вариантом 1 у меня есть ограничение в 14 электронных писем в секунду с SES, поэтому я придумал это.

$i=0;
foreach($clients as $client) {

  // send email code

  if (($i++ % 10) == 0) {
    sleep(1);
  }
}

Я считаю, что это будет отправлять только 10 в секунду.

С вариантом 2 у меня есть ограничение в 50 адресов электронной почты для каждого звонка (я думаю, что это предел), поэтому нужно отправлять пакеты по 50, что было бы довольно просто.

Итак, мой вопрос: что лучше, и если я использую вариант 1, мой код правильный или есть лучший способ его написать?

Или я все делаю не так и есть способ получше !!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
1 083
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для всех, кто хочет получить ответ на этот вопрос, решение выглядит следующим образом:

Если вы отправляете электронные письма и имеете дело с какими-либо динамическими данными самостоятельно, просто используйте вариант 1, перебирайте каждый адрес электронной почты и отправляйте в SES API, индивидуально устанавливая задержку в скрипте при каждой отправке. Следующие должны отправлять 10 каждую секунду.

foreach($clients as $client) {

  // send email code

  usleep(100000);

}

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

Другие вопросы по теме