使用Ruby / Rails仅解析传入电子邮件的HTML部分(不是文本部分)

时间:2015-11-07 21:21:02

标签: ruby parsing ruby-on-rails-4 actionmailer email-parsing

我正在编写一个Ruby / Rails脚本,我想要解析转发到特定电子邮件地址的传入电子邮件。我想首先解析电子邮件的HTML正文。我已经弄清楚如何获取Mail对象的主题和body属性并将body属性转换为字符串,但它包含一些标题文本和一些奇怪的电子邮件代码/行话(见下文)。我只想解析电子邮件的主要HTML正文部分(而不是纯文本部分)。有没有办法只解析电子邮件的HTML部分?另外,有没有办法排除标题文本&代码术语?我从控制器操作调用我的电子邮件处理程序方法,我的电子邮件处理程序的代码和电子邮件正文输出如下:

电子邮件处理程序代码

 class ParseEmail < ActionMailer::Base 

 def receive(email) 
   @note = Note.new
   @note.name = email.subject
   @note.body = email.body.to_s
   @note.save

   Rails.logger.debug "Number of email parts: #{email.parts.length}"
   Rails.logger.debug "Last content parts section: #{mail.parts.last.content_type.content_type}"
  end

将其转换为字符串后的电子邮件正文:

--001a1143fa4c921c130523f897ec
Content-Type: text/plain; charset=UTF-8

This is a test message.

-- 
Best,

Michael

--001a1143fa4c921c130523f897ec
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

This is a test message.

-- 
Best,
Michael



--001a1143fa4c921c130523f897ec--  

0 个答案:

没有答案