【问题标题】:How to get text only from the email content ? Ruby on Rails - GMail for Ruby Gem如何仅从电子邮件内容中获取文本? Ruby on Rails - Ruby Gem 的 GMail
【发布时间】:2017-12-06 06:13:26
【问题描述】:

我正在开发一个 Ruby on Rails 网站,我需要从 GMail 获取电子邮件。我正在使用GMail for Ruby Gem。我可以获取主题、日期等,甚至是正文,但是,当我获取正文时,我得到了电子邮件的完整内容。我不确定是否有另一个仅包含文本的字段,但我已经尝试过 contenttextmail,但它们都不起作用。

这是我使用body时内容的sample。我正在使用 GIST,因为它很长。

有没有人可以帮助我解决这个问题?谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby email


    【解决方案1】:

    试试这个代码

    Gmail.connect("username","password").inbox.emails.first.text_part.body.decoded
    

    另外,如果您想删除“\n”,可以使用 gsub

    Gmail.connect("username","password").inbox.emails.first.text_part.body.decoded.gsub("\n", ' ').squeeze(' ')
    

    如果你想对所有电子邮件都这样做,那么你可以这样做

    arr = []
    Gmail.connect("username","password").inbox.emails.each do |email|
       arr << email.text_part.body.decoded.gsub("\n", ' ').squeeze(' ')
    end
    

    【讨论】:

    • 谢谢。但我解析了emails 这样&lt;% gmail.inbox.find(:unread).take(5).sort_by(&amp;:date).reverse!.each do |email| %&gt;
    • 但是你一定还是得到了原始的 HTML
    • 当我尝试你的代码时,据说 undefined method text_part' 代表 "Thu, 30 Nov 2017 17:34:12 -0800":String`
    • 试试这个 Gmail.connect("username","password").inbox.emails.first.text_part.body.decoded.gsub("\n", ' ').squeeze(' ' )
    • 它可以工作,但是我仍然不明白为什么当我解析它时,它变得不工作了。
    猜你喜欢
    • 2017-04-05
    • 2015-10-12
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 2011-04-09
    相关资源
    最近更新 更多