Javaアプリケーションを実行する複数のUbuntuサーバーがあります。このアプリケーションの機能の1つは、電子メールを送信することです。今、私たちはそれをexim4
MTAとして使用します。
もっと軽いものに変えたいですexim
。私の最初の考えmsmtp
はssmtp
。コマンドラインからのメールはうまくいきましたが、問題が見つかりました。
Javaアプリケーションは電子メールを送信し、localhost:25
次の例外を受け取ります。
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25
Caused by: java.net.ConnectException: Connection refused
msmtp / ssmtpが受信しないため、これは正しい動作ですlocalhost:25
。 Javaコードを変更できないため、localhost:25
サーバーから電子メールを取得してからSMTP経由で中央メールサーバーに送信する必要があります。 msmtp / ssmtpをデーモンとして実行して受信する方法はありますかlocalhost:25
?それとも何らかの方法でlocalhost:25
msmtp / ssmtpに渡すのですかSTDIN
?
答え1
以下のリンクは、Ubuntuのバージョンに応じて選択できるすべてのMTAオプションを提供しています。
ポート25を使用するようにssmtp設定のArchwikiページを確認することもできます。
SSMTPとMSMTPはまだ完全なMTAではありません。これunix.se利用可能なMTAの完全なリストの詳細が提供され、Ubuntu用にもパッケージされています。
答え2
Javaコードを正常に変換しました。ローカルホストメールサーバーアドレスへ