質問: ### 前提・実現したいこと サーブレットからJavamailを使用してメール送信しようと思ったのですが、 送信するまでに時間がかかることとセキュリティ面から サーブレットとは別のサーバー(メールサーバー)のPostfixを経由してメールを送信したいです。 調べても似たような事例が見つからず どのようにJavaでプログラムを組んでいくのかわからず質問させていただきました。 よろしくお願い致します。
回答: HTTPリクエストを受けて、そのシーケンスの中でメールを送信したいなら、メール送信部分だけは別スレッド処理にしておいて、メール送信可否の結果とは関係なく、ユーザには先にレスポンスをシてもよいかと思います。メールなんて送ってみた結果、アドレスが存在するかどうかもわかりませんからね。 ここで重要なのはメール送信スレッドの結果はそのスレッドの中身できちんと判定して、送信エラーしたらきちんと検知できる作りになっていたほうが良いです。 セキュリティ面というのは幅が広いのでなんとも言えませんが、Tomcatを動かしているサーバとメールサーバ間の通信が外部からは見えないようになっているか、セキュアな通信になっているなら問題はないかと思います。