我正在尝试编写一个可以从gmail中获取邮件并在Ruby中获取内容的系统。 (使用imap或pop)
据我所知,有'ruby-gmail','mail'(较新版本的tmail)和'action mailer'可能会帮助我做到这一点。
我现在正在尝试'mail'和'ruby-gmail',我使用这样的解码函数:
gmail.inbox.emails[0].body.decoded
但有些邮件可以正确解码,但有些邮件不能 解码邮件的输出如下所示:
This is MIME multipart 6.
--__=_Part_Boundary_002_310696381.907173471
Content-Type: text/plain;
charset="big5"
Content-Transfer-Encoding: quoted-printable
=AE=BC=A5=BF=A7A=A6n,
.......(some encoded content)
对于其他一些邮件,Content-Transfer-Encoding是base64。
有没有更好的方法来正确解码邮件?
或者我只需要阅读邮件,获取编码部分,
并使用Base64.decode64或解压缩。(“M”)解码邮件?
答案 0 :(得分:7)
我不知道'gmail'的宝石,但'mail'的效果非常好。像
这样的东西require 'mail'
mail = Mail.new(mail_text)
mail.parts[0].body.decoded
应该有效(对其他部分使用'n'而不是0)
另请注意,它可能是附件,因此您需要mail.attachments[0].decoded