轻量级外发 SMTP 服务器

Fla*_*cks 55 software-rec smtp email

您使用什么作为仅用于外发电子邮件的轻量级 SMTP?

我正在运行一个应用程序,它会在事件偶尔发生时通过 SMTP 发送电子邮件,而且我不需要功能齐全的电子邮件服务器。

编辑:如果这是最好的选择,我很乐意使用 postfix 之类的东西(并且这样做)。我在想可能有更简单的东西,用完盒子。

小智 24

有几种最小的、仅中继的邮件传输代理(MTA 或“邮件服务器”)的选择,其中一些已在其他答案中提到:

要使其中任何一个工作,您都需要一个完整的 MTA 以进一步中继您的消息(称为“邮件中心”),并且强烈建议您控制此邮件中心。否则,坏事™ 可能会发生。

  • nullmailer 存在严重的 SMTP 合规性问题:当出现 SMTP 永久错误时,它会无限重试。如果您支付带宽/传输费用,这可能会花费您真钱 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=329192 (2认同)

bah*_*mat 12

恕我直言,最简单的方法是使用 postfix。您可以使用以下命令将其配置为光输出继电器:

postconf -e relayhost=other.mailserver.com
postconf -e myorigin=my.domainname.com
Run Code Online (Sandbox Code Playgroud)

只要 中指定的 SMTP 服务器relayhost不需要身份验证,允许您进行中继或者是收件人地址的有效目的地,这将起作用。

myorigin参数将是默认域名。因此,如果您向 foo 发送邮件,它将转到 foo@my.domainname.com。用户 bar 发送的邮件将来自 bar@my.domainname.com。

如果您确实需要进行身份验证并希望支持 TLS,还可以运行以下命令:

postconf -e smtp_tls_security_level=may
postconf -e smtp_sasl_auth_enable=yes
postconf -e smtp_sasl_password_maps=pcre:/etc/postfix/sasl_password_maps
Run Code Online (Sandbox Code Playgroud)

然后在/etc/postfix/sasl_password_maps有这个内容:

/./ username:password
Run Code Online (Sandbox Code Playgroud)

所有邮件都将使用指定的用户名和密码发送到您的中继主机。


小智 9

假设您需要一个可以从 shell 运行的程序,例如 sendmail(8),也许MSMTP会满足您的需求?它可以连接到远程 SMTP 服务器并提交它作为标准输入获取的邮件,就像 sendmail 一样。


Eva*_*van 2

您可能会发现 sSMTP 适合您的需求。阅读这篇关于它及其局限性的文章。

老实说,我不会对安装 postfix 或 exim 感到太大压力,即使它只是为了发送电子邮件。