Как регулировать скорость отправки email и отправлять 10/100/500 писем в час или в минуту
На проектах по внедрению MautiBox мы сталкиваемся с ситуацией, что у заказчика уже имеется какая-то база и первая рассылка, как правило, проходит именно по ней. Но тут возникает проблема:
Если сделать первую рассылку через не прогретый IP / домен на базу в 5000-10000 (или больше) сообщений, то гарантированно улетишь с спам. И никакая настройка SPF с DKIM не поможет...
У крупных SMTP-провайдеров, типо sendgrid.com или mailgun.com (у Российских сервисов такого не видели. Если не правы - поправьте нас в комментариях) есть функция прогрева домена, когда рассылка будет осуществляться плавно по наростающей. Но для первой рассылки по большой базе - у нее есть один критический недостаток. Письма все равно отправятся пачкой, просто в первый день первые 20 писем из 5000 отправленных пойдут через ваш IP, а остальные 4980 пойдут через публичные IP SMTP-провайдера.
Ниже расскажем, как мы решили проблему плавного прогрева домена, чтобы не "дарить" свою базу SMTP-провайдеру.
По умолчанию в настройках MautiBox используется массовая пакетная отправка здесь и сейчас. Но её можно поменять на отправку очередью, когда 5000-10000 отправляемых сообщений складываются на сервер в очередь и потом отправляются заданными кусочками. Размер кусочков настраивается через «Ограничение количества сообщений для обработки очереди». По умолчанию периодичность отправки составляет 15 минут, но и этот параметр так же можно настроить.
Чтобы ограничить время отправки, сначала нужно перейти на панель конфигурации -> Настройка электронной почты и установить «Как следует обрабатывать электронную почту?» в очередь
Здесь все становится интереснее: в разделе «Настройки электронной почты» вы увидите «Ограничение количества сообщений для обработки очереди».
«Лимит сообщений для обработки очереди» устанавливает количество электронных писем, которые должны обрабатываться каждый раз, когда срабатывает вызов экземпляра для отправки электронных писем, например, ваше задание cron. Другой способ сказать, что «лимит сообщений для обработки очереди» — это то, как электронные письма, находящиеся в состоянии «Ожидание», будут обработаны при следующем запуске задания cron, предназначенного для отправки электронных писем.
Если в ожидании находится 100 электронных писем, сколько вы хотите отправить, когда запускается задание cron для отправки электронного письма, это так просто.
Итак, если вы установите задание cron «mautic:emails:send» на запуск каждые 15 минут и установите «лимит сообщений для обработки очереди» на 10, это означает, что вы ограничиваете отправку почты, чтобы отправлять только 10 писем каждый раз. 15 минут. 60 (1 час) разделить на 15 — это 4, то есть вы можете отправлять 40 писем в час.
Здесь важно знать частоту, с которой запускается задание cron. Если вы, например, установите задание cron «mautic:emails:send» на запуск каждую минуту, а «лимит сообщений для обработки очереди» установите на 40, это даст нам 40 x 60 = 2400/электронных писем/час.
Как ограничить отправку электронной почты небольшими партиями.
Предположим, что вы хотите отправлять 60 писем в час.
Для этого изменяем частоту запуска задания cron на каждые 5 минут. Теперь разделите количество писем, которые вы хотите отправлять в час, на количество времени, в течение которого задание cron будет запускаться в час. 60/12 = 5.
Перейдите в настройки электронной почты и измените «лимит сообщений для обработки очереди» на 5, и таким образом вы сможете отправлять 60 электронных писем в час.
По умолчанию задание cron «mautic:emails:send» на отправку писем запускается каждые 15 минут, или 4 раза в час. Исходя из этого - просто умножайте количество «лимит сообщений для обработки очереди» на 4 и буде получать количество писем отправляемое в час. Всё просто - удачи!
Ни пуха, не спам-листа вам ;)