【问题标题】:Ruby Mail gem extract headers and clean up bodyRuby Mail gem 提取标题并清理正文
【发布时间】:2012-04-02 18:16:29
【问题描述】:

我正在使用Ruby Mail gem 尝试阅读和解析电子邮件。我遇到了与this post 类似的问题,但提供的解决方案只解决了我的一半问题...

有些电子邮件不回复html_parttext_part,但仍被视为“多部分”。没关系,我将求助于手动查看 MIME 类型。但是,有没有部分的多部分消息!

我有一条消息,message.multipart? #=> true,但message.parts.length #=> 0。因此,我实际上无法提取单个部分:(。

如果我查看message.body(或message.body.decoded),那里有文本,类型是text/html。但是,它的顶部也有所有的标题信息。

这听起来很疯狂,但我怎样才能只得到这封没有部分的“多部分”电子邮件的正文(或只是标题)?

编辑

这是有问题的消息之一:

#<Mail::Message:70280791538440, Multipart: true, Headers: ...>

message.body:

--XX-2ba4f992ec6d5e224ebeaf78eac50df5\nContent-type: text/html; charset=\"UTF-8\" \nContent-Transfer-Encoding: 7bit \n\nThank you...

【问题讨论】:

    标签: ruby email html-email


    【解决方案1】:

    是的,这是因为现实世界的电子邮件有各种不符合协议的惊喜。

    获取header部分和body部分:

    header_part, body_part = message.body.split(/\n\s*\n/m, 2)
    

    您可能会在此文件中找到一些有用的解析模式:

    lib/mail/patterns.rb
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多