【发布时间】:2011-11-14 13:11:05
【问题描述】:
在我的 Rails 2 应用程序中,我总是使用 sanitize email 将开发中的所有电子邮件发送到我的个人帐户,以避免意外发送电子邮件或仅用于测试。
这似乎没有 Rails 3 版本,想知道 Rails 3 是否有任何东西可以做到这一点。
【问题讨论】:
标签: ruby-on-rails-3 email actionmailer
在我的 Rails 2 应用程序中,我总是使用 sanitize email 将开发中的所有电子邮件发送到我的个人帐户,以避免意外发送电子邮件或仅用于测试。
这似乎没有 Rails 3 版本,想知道 Rails 3 是否有任何东西可以做到这一点。
【问题讨论】:
标签: ruby-on-rails-3 email actionmailer
【讨论】:
看看How to intercept ActionMailer's messages on rails 3?。您只需添加message.to = my@email,邮件就会发送到您的电子邮件地址,而不是原来的目的地。
这就是我在上面链接的帖子中最终所做的:
if Rails.env.development?
class Hook
def self.delivering_email(message)
message.to = "\"#{message.to.first}\" <my@email.com>"
message.cc = nil if !message.cc.nil?
message.bcc = nil if !message.bcc.nil?
end
end
ActionMailer::Base.register_interceptor(Hook)
end
【讨论】:
Mail.register_interceptor(Hook) 而不是ActionMailer::Base.register_interceptor(Hook)