ruby - 使用 ruby​​-mail 阅读电子邮件不会以文本格式返回邮件正文

标签 ruby email rubygems mail-gem

我正在使用 ruby​​-mail 阅读电子邮件。

除邮件正文外,所有内容均采用适当的可读格式。

邮件正文显示为一些其他编码格式。

我的代码是:

Mail.defaults do
  retriever_method :pop3, :address    => "some.email.com",
              :port       => 995,
              :user_name  => 'domain/username',
              :password   => 'pwd',
              :enable_ssl => true
end


puts "From"
puts mail.from
puts "Sender:"
puts mail.sender
puts "To:"
puts mail.to              
puts "CC:"
puts mail.cc              
puts "Subject:"
puts mail.subject         
puts "Date:"
puts mail.date.to_s       
puts "MessageID:"
puts mail.message_id      
puts "Body:"
#puts mail.body

输出是:

来自 legalholdnotification123@emc.com

发件人:

收件人: bhavesh.sharma@emc.com

抄送:

主题: case4:合法持有通知

日期: 2012-04-24T14:46:25-04:00

消息ID: 3298720.1335293185423.JavaMail.root@vm-bhaveshok7

正文:

日期:2012 年 5 月 5 日星期六 09:45:08 -0700 Mime 版本:1.0 内容类型:文本/纯文本; 字符集=utf-8 内容传输编码:base64 内容 ID:<4fa559147a120_138455aab4289ac@USITHEBBASL2C.mail>

SGVsbG8gU2lyL01hZGFtLA0KDQpCcmllZiBpbnRyb2R1Y3Rpb24gdG8gdGhl IGNhc2UgY2FzZTQNCg0KV2UgaGF2ZSBpZGVudGlmaWVkIHlvdSBhcyBhIHBl cnNvbiB3aG8gbWF5IGhhdmUgImRvY3VtZW50cyIgLS0gd2hpY2ggaW5jbHVk ZXMgYm90aCBwaHlzaWNhbCBhbmQgZWxlY3Ryb25pYyBkb2N1bWVudHMgLS0g dGhhdCBhcmUgcmVsYXRlZCB0byB0aGlzIG1hdHRlci4gV2UgYXJlIGltcGxl bWVudGluZyBhIG1hbmRhdG9yeSBkb2N1bWVudCByZXRlbnRpb24gcG9saWN5 IHRvIHByZXNlcnZlIHRoZXNlIGRvY3VtZW50cy4gUGxlYXNlIGNhcmVmdWxs eSByZXZpZXcgdGhpcyBtZW1vcmFuZHVtIGFuZCBzdHJpY3RseSBhZGhlcmUg dG8gdGhlIG1hbmRhdG9yeSBkb2N1bWVudCByZXRlbnRpb24gcG9saWN5IG91 dGxpbmVkIGhlcmVpbi4gW0NvbXBhbnldIGNvdWxkIGJlIHN1YmplY3QgdG8g

所以我无法阅读邮件正文。

我需要做什么才能阅读邮件,我需要从正文中提取文本并且必须使用邮件正文中存在的链接。

巴维什

最佳答案

邮件 gem 不会自动解码正文。您可以使用:

mail.message.body.decoded

获取解码后的消息正文。 此外,您可能会发现想要访问消息的纯 HTML 部分。为此,您可以使用如下内容:

plain_part = message.text_part ? message.text_part.body.decoded : nil
html_part = message.html_part ? message.html_part.body.decoded : nil

然后您可以使用 message.body.decoded 作为备用,以防这些部分不存在。

关于ruby - 使用 ruby​​-mail 阅读电子邮件不会以文本格式返回邮件正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10463972/

相关文章:

Ruby 扩展 NilClass

ruby - 如何从下拉列表中选择一个值

javascript - 将变量传递到 Shadowbox 模态窗口?

GitHub 当有人关注我时收到一封电子邮件

email - IMAP - 获取上一个和下一个 UID

ruby - 如何在centos或ruby docker容器中运行ruby gem?

ruby - 如何使用 Ruby 将 STDOUT 复制到文件而不停止它在屏幕上显示

ruby-on-rails - 自定义 Rails 验证抛出未定义的方法错误

ruby - Sinatra、Bundler 和 BUNDLE_PATH 混淆

ruby - 未初始化常量 File::NOCTTY 错误,当我需要 'fakefs'