我收到了从IMAP帐户中提取的电子邮件。我把它编码为:
body = imap.uid_fetch(uid, "BODY[TEXT]")[0].attr["BODY[TEXT]"].force_encoding('UTF-8')
所以现在它看起来像这样:
puts body.inspect => "\n--Apple-Mail-028364EC-0K8B-4FD7-87E8-97C28C324717\nContent-Type: text/plain; charset=\"utf-8\"\nContent-Transfer-Encoding: quoted-printable\n\nHej=20\n\nI m=C3=A5 meget undskylde men jeg vil ikke k=C3=B8be produktet alligevel hvord=\nan g=C3=B8r vi det...=20\n\nHans Nielsen. =20\nR=C3=B8rgade 65=20\n1234 G=C3=B8rlev\n\n"
我想在我的Rails应用中显示该电子邮件,因此该应用的用户可以查看该电子邮件。但是我该如何清理身体?
我想删除此部分:
--Apple-Mail-028364EC-0K8B-4FD7-87E8-97C28C324717
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
清理这部分:
Hej=20
I m=C3=A5 meget undskylde men jeg vil ikke k=C3=B8be produktet alligevel hvord=
an g=C3=B8r vi det...=20
Hans Nielsen. =20
R=C3=B8rgade 65=20
1234 G=C3=B8rlev
这意味着用原始字符替换奇怪的字符。 Fyi,这些是:
=C3=A5
是å
=C3=B8
是ø
=20
是???
=
是???
如何做到这一点(不使用gsub)?
答案 0 :(得分:2)
您需要使用MIME解析器,它应该处理删除标题并删除引用的可打印编码。根据您的电子邮件的布局,正文[text]可能会比您想要的更多。您需要下载BODYSTRUCTURE并选择所需的部分,或者下载整个消息(BODY [])并使用MIME解析器。
答案 1 :(得分:0)
解码结果为:
Hej
I må meget undskylde men jeg vil ikke købe produktet alligevel hvordan gør vi det...
Hans Nielsen.
Rørgade 65
1234 Gørlev
似乎=
为...
而=20
为"\n"
。