有没有一种简单的方法告诉Devise发送所有电子邮件
delayed_job的?
delayed_job的?
解决方法
或者,您可以非常轻松地实现和使用自己的ActionMailer“交付方法”,而不是使用Delayed :: Mailer gem.
>拦截来自ActionMailer的邮件传递
>将电子邮件存储在表格中(可选)
>创建一个引用存储的电子邮件的Delayed :: Job
>执行延迟作业时传送存储的电子邮件
做一些事情:
# in config/application.rb ActionMailer::Base.add_delivery_method :queued,Mail::QueuedDelivery # in config/environment.rb (or one of the config/environments/*.rb files) config.action_mailer.delivery_method = :queued # ie. Mail::QueuedDelivery # in lib/mail/queued_delivery.rb module Mail class QueuedDelivery def initialize(values = {}) # (optional) end def deliver!(mail) email = Email.create!(:delivery_handler => mail.delivery_handler.name,:message => mail.to_s) Delayed::Job.enqueue Jobs::Email::DeliverEmail.new(email.id) end end # class QueueDelivery end # module Mail
那么你需要实施的延迟::工作……
>从数据库中检索存储的电子邮件 – email = :: Email.find_by_id(email_id)
>通过邮件gem发送电子邮件 – Mail :: Message.new(email.message).deliver
就是这样……希望这有帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。