QA@IT

JavaMailでのメール転送を行う際に、添付ファイルを削除したい。

3184 PV

QAになってから初めて質問させて頂きます。ご回答頂けたら幸いです。

現在、Aメールサーバからインターネット経由で送信したメールに対する不達メールの転送処理をJavaMailで行うことを考えています。
その際、ほとんどの不達メールが以下の形式で返却されてきます。
 Message
  └MultiPart
    └BodyPart
      └Message
        └(1)最初の送信時に添付ファイルを添付していた場合は、ここもMultipart
        └(2)添付ファイルをつけなかった場合は、plain/text

上記のような構造の不達メールを、とあるアドレスに転送する要件です。
その際、追加要件として、(1)の部分のテキストは保持するが、添付ファイルは転送先の受信フォルダを圧迫するので
削除して欲しいということが追加されました…
転送までは上手くできていたのですが、添付ファイルの削除が上手くできません。ご教授頂けますでしょうか。
(メールサーバへのアクセスはPOPアクセスになります。)

転送のみの場合はMessage構造を掘っていく必要がなかったのですが、添付ファイルを削除するために
Message構造を掘っていくコードを書き、目的の添付ファイルを見つけたら、受信したMessage内のMultiPartに対して、
MultiPart#removerBodyPart(int)を実行しましたが、上手く削除できませんでした。

【追記】
POPで受信したMessageオブジェクトは直接編集して、転送することはできないのでしょうか?
MimeMessageのコピーコンストラクタも使用してみたのですが、removeBodyPartはうんともすんともききません…

以上、よろしくお願い致します。

ウォッチ

この質問への回答やコメントをメールでお知らせします。