Какой самый лучший способ сделать рассылку в rails3 - PullRequest
7 голосов
/ 16 февраля 2011

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

Ответы [ 3 ]

12 голосов
/ 16 февраля 2011

Никакой жемчужины для этого, о которой я знаю.

На самом деле, из-за проблем с обработкой, лучшим способом было бы использование внешнего поставщика услуг массовой рассылки через API поставщика.

Однако создание вашей собственной системы новостной рассылки ничем не отличается от создания вашей обычной MVC. Только дополнением являются почтовые программы и почтовые программы.

(1) Таким образом, вы создаете модель, которая работает с регистрационными данными (: name,: email,: и т. Д.), И модель, которая работает с самой новостной рассылкой.

(2) Контроллер, который имеет с ним дело (CRUD) + (: отправить). Send принимает каждого получателя, отправляет данные почтовой программе, которая создает электронную почту, а затем отправляет ее.

def send
 @newsletter = Newsletter.find(:params['id'])
 @recipients = Recipient.all
 @recipients.each do |recipient|
   Newsletter.newsletter_email(recipient, @newsletter).deliver
 end
end

(3) Почтовик создает почтовое сообщение, вносит некоторые изменения в каждое электронное письмо, если вы хотите сделать что-то подобное, и возвращает его в действие контроллера, отправленное для доставки.

class Newsletter < ActionMailer::Base
  default :from => "my_email@example.com", :content_type => "multipart/mixed"

  def newsletter_email(recipient, newsletter)
    # these are instance variables for newsletter view
    @newsletter = newsletter
    @recipient = recipient
    mail(:to => recipient.email, :subject => newsletter.subject)
  end
end

(4) Ofc, вам нужны почтовые представления, которые похожи на обычные представления. Ну в multipart есть:

  • newsletter_email.html.erb (или haml)
  • newsletter_email.txt.erb

    Когда вы хотите отправлять как html, так и текстовые электронные письма. Переменные экземпляра определены в почтовой программе ofc.

И ... это так. Ну, вы могли бы использовать отложенную работу, чтобы отправить их, поскольку отправка более нескольких сотен электронных писем может занять некоторое время. Несколько мсек n могут быть много времени.

Веселитесь.

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

Пожалуйста, отметьте maktoub gem , там есть сообщение в блоге поверх него.

0 голосов
/ 21 апреля 2016

Никакой жемчужины, о которой я тоже знаю, и основываясь на ответе @ Krule, вот скриншот о настройке почтовых программ в Rails.

Как создавать, просматривать и отправлять электронную почту из приложения rails

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

Экономьте деньги! Проведите где-нибудь еще.

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