我有多个 Ubuntu 服务器,上面运行着 Java 应用程序。该应用程序的功能之一是发送电子邮件。现在我们用作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 选项:
您还可以查看 Archwiki 页面上的设置 ssmtp 以使用端口 25。
SSMTP 和 MSMTP 仍然不是成熟的 MTA。这unix.se提供了可用 MTA 的完整列表的详细信息,并且它们也已针对 ubuntu 进行了打包。
答案2
我已经成功地将Java代码从本地主机到邮件服务器地址