Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby,如何使用MIME多部分正确解码邮件?_Ruby On Rails_Ruby_Imap_Mime - Fatal编程技术网

Ruby on rails Ruby,如何使用MIME多部分正确解码邮件?

Ruby on rails Ruby,如何使用MIME多部分正确解码邮件?,ruby-on-rails,ruby,imap,mime,Ruby On Rails,Ruby,Imap,Mime,我正在尝试编写一个系统,它可以从gmail中提取邮件,并用Ruby获取内容。(使用imap或pop) 据我所知,有“”、“邮件”(tmail的较新版本)和“action mailer”可能会帮助我做到这一点 我现在正在尝试“mail”和“ruby gmail”,我使用的解码功能如下: gmail.inbox.emails[0].body.decoded This is MIME multipart 6. --__=_Part_Boundary_002_310696381.907173471 C

我正在尝试编写一个系统,它可以从gmail中提取邮件,并用Ruby获取内容。(使用imap或pop)
据我所知,有“”、“邮件”(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)
但有些邮件可以正确解码,但有些无法正确解码。
解码邮件的输出如下所示:

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)
对于其他一些邮件,内容传输编码是base64

有没有更好的方法来正确解码邮件
或者我只需要读入邮件,获取编码部分,
使用Base64.decode64或解包(“M”)来解码邮件?

我不知道“gmail”gem,但“mail”gem工作得很好。差不多

require 'mail'
mail = Mail.new(mail_text)
mail.parts[0].body.decoded
应该可以工作(对于其他部分,使用“n”而不是0)


另外请注意,它可能是一个附件,因此您需要
mail.attachments[0]。已解码

谢谢您的帮助!我发现了为什么输出看起来很奇怪!因为原来的邮件是中文的,而不是英文的。我需要的是ascii和unicode解码器,而不是MIME解码器。谢谢你的帮助!不要尝试对多部分邮件进行
mail.body.decode
,因为它不起作用。在使用multipart之前测试它?