хочет, чтобы сайт сделал все для нас в одном простом месте.
В этом случае речь идет не о «Mailchimp или бюсте», это вопрос abstraction.
В частности, владелец, вероятно, захочет получить центральную «приборную панель» на своей веб-панели (вроде как работает CRM), из которой он сможет узнать, сколько участников, электронных писем и т. Д. Было отправлено.
Таким образом, я бы стремиться к использованию Mandrill и собирать данные в приложении, например:
#app/models/user.rb
class User < ActiveRecord::Base
has_many :mailouts
has_many :newsletters, through: :mailouts
end
#app/models/mailout.rb
class Mailout < ActiveRecord::Base
#columns id | user_id | newsletter_id | created_at | updated_at | sent_at | received_at
belongs_to :user
belongs_to :newsletter
end
#app/models/newsletter.rb
class Newsletter < ActiveRecord::Base
#columns id | title | body | created_at | updated_at
has_many :mailouts
has_many :users, through: :mailouts
after_create :set_mailouts
private
def set_mailouts
User.find_each do |user|
self.mailouts.create(user: user)
end
end
end
Это даст вам возможность использовать следующее:
#app/controllers/newsletters_controller.rb
class NewslettersController < ApplicationController
def new
@newsletter = Newsletter.new
end
def create
@newsletter = Newsletter.new newsletter_params
@newsletter.save
end
end
Довольно неэффективно с after_create
, но, тем не менее, он показывает, что после этого вы можете выполнить команду рейка, которая будет делать примерно следующее:
@newsletter = Newsletter.find x
@newsletter.mailouts.each do |mailout|
# send mailout to mandrill
end
Что важно помнить о том, что Mandrill и SendGrid являются инфраструктуры приложений. Сам Mailchimp обеспечивает функциональность пользовательского интерфейса поверх инфраструктуры Mandrill.
Если вы хотите использовать подобные Mailchimp, то, что вы, вероятно, в конечном итоге делаете, отправляет список пользователей Mailchimp каждую неделю, что позволяет отправлять бюллетени через свою систему.
Создание собственной функциональности & ссылка на Mandrill изменит вашу реализацию, предоставив вам возможность управлять данными в вашем собственном приложении. Просто что-то вспомнить, думая о структуре.
Вы можете использовать [Mandrill] (http://mandrill.com). Это часть MailChimp, поэтому вы можете импортировать свои шаблоны из MailChimp. – AbM