是否值得花时间和精力在我们的rails网站上创建一个功能,每周一次向我们的客户数据库发送电子邮件,或者是MailChimp全能的One用来向成千上万的人发送每周通讯?如果我们使用我们的rails应用程序可以将SenderGrid或其他功能作为我们的时事通讯的选项吗?
我们目前使用Mailchimp并且我们喜欢它,但公司的所有者希望网站在一个简单的地方为我们做所有事情。
感谢您的反馈!
答案 0 :(得分:1)
如果没有像Mailchimp或SenderGrid这样的第三方,您将不得不做大量的工作来处理取消订阅功能和分析(跳出,打开,点击......)等等。如果你没有&#39处理取消订阅,贵公司可能会遇到严重的法律纠纷。您还需要以某种方式设置正确的电子邮件服务器,因为使用Rails'没有SMTP配置的ActionMailer将具有可怕的传送速率(电子邮件客户端会将您的发送解释为欺骗性电子邮件)。
如果您希望您的网站处理电子邮件简报计划的逻辑,您可以在您的网站中构建逻辑,并让网站通过API与Mailchimp(例如)进行通信,以便安排发送和处理取消订阅。您还可以通过API检索广告系列统计信息,并将其写回您的网站数据库或其他任何内容。这可能是值得的,取决于你想要做什么。
答案 1 :(得分:1)
希望网站在一个简单的地方为我们做一切。
在这种情况下,它不是" 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
的效率非常低,但是它表明你可以有一个rake任务,可以这样做:
@newsletter = Newsletter.find x
@newsletter.mailouts.each do |mailout|
# send mailout to mandrill
end
要记住的重要事项是 Mandrill 和 SendGrid 是基础设施应用程序。 Mailchimp本身在Mandrill基础架构之上提供UI功能。
如果你想使用Mailchimp之类的东西,你可能最终会做的是每周将用户列表发送到Mailchimp,允许你通过他们的系统发送新闻通讯。
创建自己的功能&amp;链接到Mandrill只会让您能够管理自己应用程序上的数据,从而改变您的实现。在考虑结构时要记住一些事情。
答案 2 :(得分:1)
尝试MailyHerald。它是一个Rails引擎,可以帮助您管理您的新闻简报并为您提供漂亮的网络ui。它也适用于Mandrill和其他电子邮件服务。