【问题标题】:db based queued mail rails 3基于数据库的排队邮件 rails 3
【发布时间】:2013-12-31 20:09:05
【问题描述】:
这可能是一个非常简单且不必要的问题,但我正在努力。
从 Rails 3 开始,这个世界似乎已经完成了 queued_mails 结构。我需要一个用 rails 3 编写的 gem,它可以拦截 MyMailer 的传递方法,将邮件排队到 db 中,并要求我们运行 rake 以使所有邮件出列并发送。
它也很容易制作,但我不想努力,因为很难相信 Rails 3+ 没有。
建议?
【问题讨论】:
标签:
ruby-on-rails-3
email
gem
message-queue
【解决方案1】:
instead of using gem messages-queue
create simple mailer
pls check railscasts.com/episodes/171-delayed-job
script/plugin install git://github.com/collectiveidea/delayed_job.git
script/generate delayed_job
rake db:migrate
rake jobs:work
mailings_controller.rb
mailing = Mailing.find(mailing_id)
mailing.send_later(:deliver)
# or
Delayed::Job.enqueue(MailingJob.new(params[:id]), -3, 3.days.from_now)
lib/mailing_job.rb
class MailingJob < Struct.new(:mailing_id)
def perform
mailing = Mailing.find(mailing_id)
mailing.deliver
end
结束