在javamail中发现了Base64DecoderStream的问题。我得到的一些电子邮件内容是这样的:
.mouseleave()
理想情况下,=符号应该替换为以下行中的单个字符,但gsuite(Gmail)有时会这样做。这会导致Base64DecoderStream损坏消息。但是,Outlook和许多流行的在线base64解码器都能很好地处理这个base64内容。这可以解决吗?
答案 0 :(得分:1)
私下提供了其他详细信息,这使我能够确定问题是邮件包含MIME类型message / rfc822(原始邮件)的附件,并且该附件使用引用可打印的Content-Transfer-Encoding 。 MIME规范不允许将该编码用于该类型的MIME内容。这违反了Google真正需要修复的MIME规范。如果他们自己没有弄明白,请提供这些额外信息。
RFC 2046,第5.2.1节说:
不允许使用“7bit”,“8bit”或“binary”以外的编码 “message / rfc822”实体的主体。
同时,您可以将JavaMail系统属性mail.mime.allowencodedmessages
设置为“true”以解决GSuite中的此错误。