邮件宝石确定是纯文本还是HTML

时间:2012-04-10 18:01:57

标签: ruby ruby-on-rails-3 email imap

我正在使用https://github.com/mikel/mail

中的mail宝石

我用它来解析原始邮件数据:例如

require 'mail'

maildata = Mail.new(body) #where body is the raw text of an email message

#from there I can see info such as
p maildata.body.decoded #displays the decoded email body
p maildata.from #shows who the email is from

我如何确定电子邮件是plaintext还是html是否有内置方式来执行此操作?

1 个答案:

答案 0 :(得分:2)

您可以查看maildata.content_type

maildata.content_type
#=> "text/plain; charset=us-ascii"

如果是多部分电子邮件,您可以同时使用纯文本和HTML。然后,您可以查看parts数组以查看它包含的内容类型:

maildata.content_type
#=> "multipart/alternative; boundary=\"--==_mimepart_4f848491e618f_7e4b6c1f3849940\"; charset=utf-8"

maildata.parts.collect { |part| part.content_type }
#=> ["text/plain; charset=utf-8", "text/html; charset=utf-8"]