JavaMail を使用する、私が書いていないコードを修正していて、JavaMail API がそのように設計されている理由を理解するのに少し苦労しています。理解できれば、もっといい仕事ができる気がします。
私たちは次のように呼びます:
transport = session.getTransport("smtp");
transport.connect(hostName, port, user, password);
では、Eclipse が次のように警告するのはなぜですか。
transport.send(message, message.getAllRecipients());
静的メソッドの呼び出しですか?
Transport オブジェクトを取得して、そのオブジェクトを使用してメッセージを送信できないのに、そのオブジェクトに固有の設定を提供するのはなぜですか? Transport クラスは、メッセージの送信に使用するサーバーやその他の設定をどのように認識しているのでしょうか? 信じられないほどうまく機能しています。2 つの異なるサーバーのトランスポート オブジェクトをインスタンス化した場合はどうなるでしょうか。どちらを使用するかをどのように知るのでしょうか?
この質問を書いている過程で、私は本当に呼び出す必要があることを発見しました:
transport.sendMessage(message, message.getAllRecipients());
では、静的な Transport.send() メソッドの目的は何でしょうか? これはデザインが悪いだけですか、それとも理由がありますか?