ruby-on-rails – Rails – 邮件,将正文获取为纯文本

给定:message = Mail.new(params [:message])

如这里所示:http://docs.heroku.com/cloudmailin

它显示如何获取message.body作为HTML,如何获得纯文本版本?

谢谢

上面的代码:

message = Mail.new(params[:message])

将从完整的消息中创建一个新的mail gem实例。然后,您可以使用该消息上的任何方法来获取内容。因此,您可以使用以下方式获取普通内容:

message.text_part

或HTML与

message.html_part

这些方法将只是猜测并找到text / plain或text / html内容类型的多部分消息的第一部分。 CloudMailin还提供了这些方便的方法,但通过params [:plain]和params [:html]。值得记住的是,消息永远不会保证有一个plain或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)时,从消息中提取内容编码也很重要。

http://stackoverflow.com/questions/4868205/rails-mail-getting-the-body-as-plain-text

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:ruby-on-rails – Rails – 邮件,将正文获取为纯文本