require "mail"
Mail.defaults do
retriever_method :pop3, :address => "pop.gmail.com",
:port => 995,
:user_name => 'example@gmail.com',
:password => 'password',
:enable_ssl => true
end
email_first = Mail.first
puts email_first.body.decoded
显示:
- 001a1145b2922bebe405243ff864 Content-Type:text / plain; charset = UTF-8 Content-Transfer-Encoding:base64 KtCyIDE1LjAwLg0KDQoxMSDQvdC + 0Y / QsdGA0Y8gMjAxNSDQsy4sIDE0OjUzINC / 0L7Qu9GM0LfQ ...(多 的base64)...
为什么不解码为UTF-8?
答案 0 :(得分:3)
邮件包含MIME multipart正文。这意味着,正文由多个部分组成(甚至可能嵌套),每个部分都可以包含不同编码的不同对象。
现在大多数邮件都是作为多部分邮件发送的,并且可以包含例如邮件。 HTML部分和明文部分。由于邮件宝石无法知道您想要哪些部件,因此它为您提供了一个API来自行枚举部件:
email_first = Mail.first
puts email_first.parts.first.decoded
要查找您最感兴趣的部分,可以在部件中使用所述的mimetype,例如
email_first.parts.first.mime_type
# => text/plain