ruby-on-rails - Rails - 邮件,以纯文本形式获取正文

标签 ruby-on-rails ruby-on-rails-3 heroku actionmailer

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

如下所示:http://docs.heroku.com/cloudmailin

它展示了如何获取 HTML 格式的 message.body,如何获取纯文本/文本版本?

谢谢

最佳答案

上面的代码:

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

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

message.text_part

或带有

的 HTML
message.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/

相关文章:

mysql - 如何将mysql数据库从heroku拉到本地机器

ruby-on-rails - 在谷歌地图上动态显示标记-Rails 3.2

ruby-on-rails - Rails 3.2.8,只有重启服务器才会取消缓存模型

ruby-on-rails - Rails 自定义 submit_tag

ruby-on-rails - 我的 rails 路径及其路由出现奇怪的问题

在 heroku 中部署 Node.js 应用程序

python - 如何部署 airbnb 知识提要

ruby-on-rails - 我如何保持记录的 session 并清除内存缓存中的 session 除外的缓存

ruby-on-rails - redis相当于存储一个数组是什么?

javascript - 为什么我的 bootstrap css 类对我的 index.html.erb 没有任何影响?