Message.body在ActionMailer Observer中为空

时间:2013-03-06 19:39:17

标签: ruby-on-rails actionmailer observers

我正在使用观察者来记录外发电子邮件;它正确触发,但当我尝试提取电子邮件的正文时,我得到一个空字符串。电子邮件绝对不是空白,并且肯定会创建日志记录。断点和检查message.body确认它是一个空字符串。

class MailObserver
  def self.delivered_email(message)
    for address in message.to
      user = User.find_by_email(address)
      if user
        UserMailerLogging.create!(user_id: user.id, email_type: message.subject, 
                                  contents: message.body, sent_at: Time.now)
      end
    end
  end
end

ActionMailer::Base.register_observer(MailObserver)

1 个答案:

答案 0 :(得分:2)

在Rails 3中,使用Mail gem构建和发送电子邮件。根据他们的文档

message.text_part # plaintext version
message.html_part # html version

根据您的电子邮件是否为多部分,您还可以进一步了解。

message.text_part.body.decoded

SO上的这个问题也可能是非常糟糕的。