0

我已经在我的 Ruby on Rails 应用程序中启动并运行了一个有效的拦截器。目前我可以使用以下技术很好地修改主题,但由于某种原因我无法修改正文。

在我的 /config/initializers 中,我像这样注册拦截器:

ActionMailer::Base.register_interceptor(MailIntercept)

在 /lib/ 我有一个名为 mail_intercept 的文件,如下所示:

class MailIntercept
  def self.delivering_email(message)
   message.subject = "Modified Subject"
   message.body = "Modified Body"

   if message.to.split("@").last == "olddomain.com"
    message.subject = "Domain is olddomain.com, safe to display message"
    message.body = message.body + "Domain is olddomain.com, safe to display message" 
    else
    message.subject = "Domain is NOT olddomain.com, hide message"
    message.body = "Domain is NOT olddomain.com, hide message."
   end

   end
end

问题#1:身体永远不会被修改。

问题 #2:发送电子邮件的应用程序有多个电子邮件地址作为密件抄送发送。如果电子邮件发往 olddomain.com,我想显示邮件正文。否则,我想剥离消息正文并只显示一条消息。

我很确定这个 delivery_email 只在发送电子邮件时被调用一次,而不是每个 BCC 的多次调用。即使我通过 TO、CC 和 BCC 循环然后修改正文,它也会为每个人修改正文。有没有更好的方法来解决这个问题?

4

1 回答 1

1

我检查了代码,它对我来说工作正常我使用的是 Rails 3.2.6

我想问题可能出在动作邮件方法调用的地方

于 2012-12-06T15:22:34.123 回答