给定:message = Mail.new(params[:message])
如下所示:http://docs.heroku.com/cloudmailin
它展示了如何获取 HTML 格式的 message.body,如何获取纯文本/文本版本?
谢谢
最佳答案
上面的代码:
message = Mail.new(params[:message])
将创建 mail gem 的新实例从完整的消息来看。然后,您可以使用该消息上的任何方法来获取内容。因此,您可以使用以下方式获取纯内容:
message.text_part
或带有
的 HTMLmessage.html_part
这些方法只会猜测并找到文本/纯文本或文本/html 内容类型的多部分消息中的第一部分。 CloudMailin 还通过 params[:plain] 和 params[:html] 提供这些便捷方法。值得记住的是,永远不能保证消息有纯文本或 html 部分。可能值得使用如下内容来确定:
plain_part = message.multipart? ? (message.text_part ? message.text_part.body.decoded : nil) : message.body.decoded
html_part = message.html_part ? message.html_part.body.decoded : nil
顺便说一句,当您使用这些方法时,从消息中提取内容编码并确保输出编码为您想要的编码方法(例如 UTF-8)也很重要。
关于ruby-on-rails - Rails - 邮件,以纯文本形式获取正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4868205/