ActionMailer Observer中的Message.body为空
我正在使用Observer来记录外发电子邮件; 它正确触发,但当我尝试提取电子邮件的正文时,我得到一个空字符串。 电子邮件肯定不是空白的,并且肯定会创建日志记录。 断点和检查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)
在Rails 3中,使用Mail gem构建和发送电子邮件 。 根据他们的文档
message.text_part # plaintext version message.html_part # html version
您还可以进一步了解,具体取决于您的电子邮件是否为多部分。
message.text_part.body.decoded
这里关于SO的这个问题也可能是有害的。