我正在编写一个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--