Создание Drip Email Кампании Rails - PullRequest
3 голосов
/ 16 февраля 2012

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

Какой лучший способ сделать это? Есть ли драгоценность, которая облегчает это, или какой-либо сторонний поставщик электронной почты, который делает это хорошо? Я уже использую SendGrid для отправки электронной почты и, просматривая их API, я не нашел ничего, что делает именно это. Спасибо за любую помощь!

Ответы [ 2 ]

2 голосов
/ 04 ноября 2013

Моя установка для запуска кампании капельной электронной почты в рельсах - хранить drip_stage каждого пользователя и когда он был last_emailed_at.А затем я планирую грабли на каждые десять минут, используя планировщик heroku.Задача rake выглядит примерно так:

task :send_drip_email => :environment do 
   users = User.where(:last_emailed_at => Time.at(0)..Time.now)
   users.find_each do |u|
      UserMailer.send_drip(u, :stage => u.drip_stage)
      u.update_attributes(:last_emailed_at => Time.now, :drip_stage => u.drip_stage + 1)
   end
end

Таким образом, она равномерно распределяет электронные письма всех ваших пользователей, а не все сразу.*

Еще один крутой совет, который я использую, - хранить электронную почту в базе данных.Я сделал модель под названием Email с subject, body, and drip_stage.А потом я на самом деле отрисовываю электронную почту, чтобы получить доступ к переменным.

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

Все, что вам нужно сделать, чтобы сделать электронное письмо, это

= render :inline => @email.body, :type => :haml
0 голосов
/ 14 мая 2013

Задержка задания - это, вероятно, ваша лучшая ставка:
https://github.com/collectiveidea/delayed_job

Если по какой-то причине вы не можете запустить отдельный рабочий процесс, проверьте Faucet:
https://github.com/dshipper/Faucet

Я бы настоятельно рекомендовал использовать сторонний SMTP-провайдер для отправки, а не через Postfix, иначе у вас могут возникнуть проблемы с доставкой, поскольку большинство бесплатных почтовых провайдеров (Gmail, Yahoo Mail, Hotmail) все выполняют фильтрацию.

На мой взгляд, лучшими вариантами являются Кольчуга или Мандрил .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...