在 Ruby 中使用 base64 进行邮件解码

mail decode using base64 in Ruby

我正在尝试实现解码邮件

--001a11419e22edc789053c4ccb1b 内容类型:text/plain;字符集=UTF-8 这是众所周知的 --001a11419e22edc789053c4ccb1b 内容类型:text/html;字符集=UTF-8

这是众所周知的

--001a11419e22edc789053c4ccb1b--

如何解码 UTF-8 中的 html 甲酸盐 我也在尝试解码

 require 'base64'
 def decode(x)
  y = Base64.decode64(x)
 d = y.force_encoding('UTF-8')
return d

但错误是 UTF-8 中的无效字节序列 当我只使用 Base64.decode64(x) 然后它显示输出.. ������uӟ6۽ٽ9��x�= ��z{Sʗ��{��V����Z��ǭQ1|~��j 背后的原因是什么?

您无法仅使用 Base64.decode64 解析电子邮件。某些电子邮件中只有一小部分是 base64 编码的。您必须提取这些部分,然后您可以使用 Base64.decode64 解码提取的部分。

如果您想解析一封电子邮件,您可以这样做 "by hand" 或使用现有的 gem 之类的 https://github.com/mikel/mail