我的 Gmail 帐户中有以下主题的邮件:
“400, значение, значение”
这是我用来抓取邮件的代码:
imap = Net::IMAP.new('imap.gmail.com', 993, true, nil, false)
imap.login(LOGIN, PASSWORD)
imap.select("INBOX")
messages = imap.search(['ALL']).map do |message_id|
msg =imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
result = {:mailbox => msg.from[0].mailbox, :host => msg.from[0].host, :subject => msg.subject, :created_at => msg.date}
imap.store(message_id, "+FLAGS", [:Deleted])
result
end
imap.expunge()
imap.logout
在 msg.subject 中,我有以下值“=?KOI8-R?B?MTAwLCDixc7ayc4sIDMwMDAgzMnU0s/X?="
似乎 IMAP 还没有解码它。我应该手动执行还是 IMAP 库可以为我做?
最佳答案
使用NKF怎么样?
require 'nkf'
...
result = {... :subject => NKF.nkf("-mw", msg.subject), ...}
-mw 表示 MIME 解码和 utf-8 输出
关于ruby-on-rails - Ruby IMAP 库不解码邮件主题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3975507/