use*_*838 4 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
Run Code Online (Sandbox Code Playgroud)
输出是:
来自 legalholdnotification123@emc.com
发件人:
至:bhavesh.sharma@emc.com
抄送:
主题:案例 4:合法保留通知
日期: 2012-04-24T14:46:25-04:00
消息ID:3298720.1335293185423.JavaMail.root@vm-bhaveshok7
身体:
日期:2012 年 5 月 5 日,星期六 09:45:08 -0700 Mime 版本:1.0 内容类型:text/plain;charset=utf-8 内容传输编码:base64 内容 ID:<4fa559147a120_138455aab4289ac@USITHEBBASL2C.mail>
SGVsbG8gU2lyL01hZGFtLA0KDQpCcmllZiBpbnRyb2R1Y3Rpb24gdG8gdGhl IGNhc2UgY2FzZTQNCg0KV2UgaGF2ZSBpZGVudGlmaWVkIHlvdSBhcyBhIHBl cnNvbiB3aG8gbWF5IGhhdmUgIm RvY3VtZW50cyIgLS0gd2hpY2ggaW5jbHVk ZXMgYm90aCBwaHlzaWNhbCBhbmQgZWxlY3Ryb25pYyBkb2N1bWVudHMgLS0g dGhhdCBhcmUgcmVsYXRlZCB0byB0aGlzIG1hdHRlci4gV2UgYXJ ligltcgxl bWVudGluZyBhIG1hbmRhdG9yeSBkb2N1bWVudCByZXRlbnRpb24gcG9saWN5 IHRvIHByZXNlcnZlIHRoZXNliGRvY3VtZW50cy4gUGxlYXNlIGNhcmVmdWxs eSByZXZpZXcgdGhpcyB tZW1vcmFuZHVtIGFuZCBzdHJpY3RseSBhZGhlcmUg dG8gdGhlIG1hbmRhdG9yeSBkb2N1bWVudCByZXRlbnRpb24gcG9SAWN5IG91 dGxpbmVkIGhlcmVpbi4gW0NvbXBhbnldIGNvdWxkIGJlIHN1Y mplY3QgdG8g
所以我无法阅读邮件正文。
为了阅读邮件,我需要做什么,我需要从正文中提取文本,并且必须使用邮件正文中存在的链接。
巴韦什
邮件 gem 不会自动解码正文。您可以使用:
mail.message.body.decoded
Run Code Online (Sandbox Code Playgroud)
获取解码后的消息正文。此外,您可能会发现您想要访问消息的纯 HTML 部分。为了做到这一点,你可以使用类似下面的东西:
plain_part = message.text_part ? message.text_part.body.decoded : nil
html_part = message.html_part ? message.html_part.body.decoded : nil
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用message.body.decoded作为后备,以防这些部分不存在。
| 归档时间: |
|
| 查看次数: |
2570 次 |
| 最近记录: |