2

我正在使用观察者记录传出的电子邮件;它可以正确触发,但是当我尝试提取电子邮件正文时,我得到一个空字符串。电子邮件绝对不是空白的,并且肯定会创建日志记录。断点和检查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)
4

1 回答 1

3

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

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

您还可以更进一步,具体取决于您的电子邮件是否是多部分的。

message.text_part.body.decoded

SO上的这个问题也可能很重要。

于 2013-03-06T20:15:09.820 回答