これが私のシナリオです:
- 一部のメール送信 Bean は、メールの構築に必要な一連のパラメーターを使用して呼び出されます。
- MultiPartEmail を作成し、バックグラウンドで別のスレッドによって行われる送信のためにキューに入れます。発信者は、送信されたかどうかを気にしません。
- 配信スレッドは、キューに入れられた電子メール インスタンスを取得し、email.send() を実行します。
- 配信に失敗すると、Bean は 5 分ごとに 3 回メールの再送信を試み、その後あきらめます。
質問:
#4 の扱い方がわかりません。私が手元に持っているのは、送信に失敗した以前に構築された MultiPartEmail インスタンスです。どうやら email.send() を再度実行すると、次のようにスローされます。
java.lang.IllegalStateException: MimeMessage は既に構築されています。
メッセージを再利用できるように、この不正な状態をリセットする方法はありますか。新しいインスタンスを最初から作成する手段は実際にはありません-呼び出し元はずっと前にいなくなっており、既に構築されたオブジェクトを使用できずにメカニズム全体が非常に醜くなります。ここで非常に単純なものが欠けていると思います..