1

JavaMail (1.5.0) を使用して pop3 経由で受信トレイを受信して​​います。サーバーの 1 つが不適切な形式のコンテンツ タイプの文字列を送信します。境界の後にエンコーディングが追加されています。次のようになります。

Content-Type: multipart/mixed; 
 boundary="=_NextPart_2rfkindysadvnqw3nerasdf";koi8-r

解析時にエラーが発生します。

 javax.mail.internet.ParseException: Expected '=', got "null"   at
     javax.mail.internet.ParameterList.<init>(ParameterList.java:250)   at
     javax.mail.internet.ContentType.<init>(ContentType.java:114)   at
     javax.mail.internet.MimeMultipart.parse(MimeMultipart.java:580)    at
     javax.mail.internet.MimeMultipart.getCount(MimeMultipart.java:325)

実際の解析の前にメール ストリームを修正する方法はありますか? 機能を拡張するためにライブラリのソースをコンパイルしようとしましたが、これは本来あるべきほど簡単ではありません (バグ修正をどこで解決すればよいかわかりません)。

4

1 に答える 1

2

javax.mail.internet パッケージの javadoc で、mail.mime.contenttypehandler プロパティの説明を参照してください。これにより、JavaMail が使用する前に Content-Type 値をクリーンアップするクラスを作成できます。

もちろん、この偽のヘッダーをサーバー ベンダー、またはメッセージを作成したメーラーのベンダーに報告する必要があります。

于 2013-09-11T18:46:11.627 に答える