Вопрос по smtp, ruby-on-rails – Как мы можем отправлять 5000 писем в час, используя actionmailer в ruby on rails?

4

I have some questions about ActionMailer :

How does Actionmailer connect to a smtp server ?

Are the connections concurrent or parallel if the number of emails high > 1000 ?

How will sending out emails like facebook does ( 1000's in numbers ) as immediate emails affect the ruby on rails application and how would actionmailer handle it ?

Any other solution/plugin to send out large number emails from a RoR application apart ActionMailer?

------------------------------------------------ добавлено:

Нам нужно отправить не менее 1000 писем за 15 минут. Мы используем сервер Notes Domino в качестве нашего сервера SMTP. какова возможная архитектура для такого рода проблем. Мы уже храним электронные письма в базе данных, чтобы отправить их позже, но необходимоsending approach !

Хех, это "ой-ой" вопрос;-), Может быть, для этого нужен сторонний отправитель, такой как SendGrid? halfer
Параллельное ИЛИ параллельное? Они разные? kafuchau
Конечно, это дубликат. Поиск ТАК. ybakos
Этот вопрос должен быть переименован в: «Как заставить 5000 человек ненавидеть вас с помощью ActionMailer» daino3

Ваш Ответ

4   ответа
4

ров, включая хост, порт и протокол.

3) Эффект будет медленным сайтом в результате выполнения множества синхронных задач.

2 & amp; 4)

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

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

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

1

ndMail local

concurrent

multiple handlers

Is there a bulk email plugin for Rails apps?

Вы также можете сделать 1000.times сделать email.deliver, но он, вероятно, разрушит ваш сервер

8

ActionMailer очень хорош для одиночных писем, но имеет тенденцию сталкиваться с проблемами после отправки нескольких писем, так как каждое может занять несколько секунд. Вот почему я создалPostageApp чтобы помочь решить эти проблемы.

Некоторые услуги на рынке, чтобы помочь вам с отправкой большого количества писем от Rails:

MailGun SendGrid PostmarkApp MailChimp Mailjet PostageApp

Все они имеют способы отправки нескольких сообщений с помощью одного вызова API или транзакции SMTP.

2

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

Допустим, вы установили 20 рабочих Sidekiq, каждый из которых должен иметь возможность отправлять электронную почту каждые 2-4 секунды, а вы смотрите на легкие 300-600 в минуту.

НЕ пытайтесь делать это без фоновых рабочих, таких как Sidekiq, Resque или DelayedJob. Вы заморозите все свое приложение, если попытаетесь отправить в приложение большое количество писем. Даже отправка писем активации в приложении, а что нет, приведет к ненужным проблемам замедления.

У меня есть один работник, который периодически обрабатывает очереди, и другой класс работника, который обрабатывает отправку. Мы используем Resque (возможно, 6 рабочих?) Для этого в старом приложении (pre-sidekiq), чтобы отправлять около 500 писем каждые 5 минут без проблем.

Вы всегда можете использовать третье лицо, как кто-то упоминал. Сендгрид приличный. Но это был не вопрос, это то, как вы делаете это сами легко и просто.

Похожие вопросы