1

私は StackOverflow に大いに助けられたので、これを投稿して、他の人がデバッグに費やした時間を節約したいと思いました。

Java アプリケーションを使用して、IMAP/SSL 経由でメールを取得しています。何ヶ月も大丈夫。Yahoo からの特定のメッセージに関する問題が発生しました。メッセージは、base64 でエンコードされた text/plain 部分と base64 でエンコードされた text/html 部分を持つ multipart/alternative です。

次のエラーで取得に失敗します。

IOException: com.sun.mail.util.DecodingException: BASE64Decoder: Error in encoded stream: needed 4 valid base64 characters but only got 3 before EOF, the 10 most recent characters were: "IPONREPLY>" :[com.sun.mail.util.BASE64DecoderStream.decode(BASE64DecoderStream.java:256), com.sun.mail.util.BASE64DecoderStream.read(BASE64DecoderStream.java:110)...

コンテンツ自体は、Yahoo の Web メール クライアントを使用すると正常に表示されます。HTML 部分でアプリケーションによって取得されるものを見ると、base64 でエンコードされた text/html 部分の最後に次のように表示されます。

[...]
YWdlcy9iank1LzQ5NjViOGUyLTQxYjEtNGFhNi1iOGFhLTEzNGQwYjYxMWM5My5naWZ4IiAvPg0K
DQo8L2JvZHk+PC9odG1sPg==
<XHTML-STRIPONREPLY>                                                                               


                 </XHTML-STRIPONREPLY>

これは、Yahoo が最近メッセージに追加し始めたテキストです。エンコードされていない、または引用された印刷可能なエンコーディングを使用するテキストで機能しますが、base64 でエンコードされた部分は壊れます。

Yahoo に報告したので、すぐに修正されることを願っています。

4

1 に答える 1