使用 MailChimp 或 Rails 网站向客户发送时事通讯

Use MailChimp or Rails Website to send Newsletter to customers

在我们的 rails 网站上创建一项每周向我们的客户数据库发送一次电子邮件的功能是否值得花费时间和精力,或者 MailChimp 是全能的用来向成千上万的人发送每周时事通讯的功能吗?人们?如果我们使用我们的 rails 应用程序,SenderGrid 或其他一些功能是否可以成为我们新闻通讯的一个选项?

我们目前使用 Mailchimp,我们喜欢它,但公司的所有者希望该网站在一个简单的地方为我们做所有事情。

感谢您的反馈!

如果没有像 Mailchimp 或 SenderGrid 这样的第三方,您将不得不做很多工作来处理退订功能和分析(退回、打开、点击...)等。如果您不这样做妥善处理退订,您的公司可能会陷入严重的法律麻烦。您还需要以某种方式设置一个合适的电子邮件服务器,因为使用 Rails' ActionMailer 没有 SMTP 配置将会有可怕的传递率(电子邮件客户端会将您的发送解释为欺骗性电子邮件)。

如果您希望您的网站处理电子邮件时事通讯安排的逻辑,您可以将逻辑构建到您的网站中,并让网站通过 API 与 Mailchimp 通信(例如)以安排发送和处理以这种方式退订。您还可以通过 API 检索活动统计信息,并将其写回到您的网站数据库或其他任何地方。这可能是值得的,具体取决于您要做什么。

wants the website to do everything for us in one simple place.

那么,就不是"Mailchimp or bust"的问题了,而是abstraction的问题了。

具体来说,所有者可能希望在他的网络仪表板上有一个中央 "dashboard"(有点像 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 效率很低,但它表明你可以有一个 rake 任务,它会做这样的事情:

@newsletter = Newsletter.find x
@newsletter.mailouts.each do |mailout|
   # send mailout to mandrill
end

需要记住的重要一点是 MandrillSendGridinfrastructure 应用程序。 Mailchimp 本身在 Mandrill 基础设施之上提供 UI 功能。

如果您想使用 Mailchimp 之类的服务,您最终可能会每周将用户列表发送到 Mailchimp,从而允许您通过他们的系统发送时事通讯。

创建您自己的功能并链接到 Mandrill 只会改变您的实现,让您能够在自己的应用程序上管理数据。只是在考虑结构时要记住的事情。

MailyHerald 试一试。它是一个 Rails 引擎,可帮助您管理新闻通讯并为您提供漂亮的网络 ui。它还适用于 Mandrill 和其他电子邮件服务。