从服务器转发所有邮件的最简单方法?

从服务器转发所有邮件的最简单方法?

可能的重复:
轻量级发送 SMTP 服务器

我正在寻找一个无头服务器的最小邮件解决方案(MTA),它为本地用户生成电子邮件,并从 cron 作业等生成完全合格的地址。理想情况下,发送给本地用户的所有邮件foo都应映射到foo@mydomain,并可能进行修改uid<1024,并发送到外部 smtp 服务器,而不涉及/var/mail.

几年前,我用过sSMTP对于类似的任务,我想知道这是否仍然是未来的方向?另外,我应该/可以删除多少默认的 Debian 邮件系统?


更新最后用谷歌搜索了一下,明显的候选者似乎是

虽然电子SMTP不再开发了,它似乎有最好的文档。但它不太符合我的需求,它似乎坚持foo通过邮件传递代理(MDA)将邮件传递给本地用户,而不是通过 smtp 将其推送到[email protected].或者,如果我添加qualify_domain到配置中,它可能会执行映射。可能需要尝试一下...
空邮件程序似乎正在运行队列/var,这不是我想要的。

有人有这些方面的经验吗?

答案1

空邮件程序可能符合要求:

Nullmailer 是一个邮件传输代理,旨在仅通过一组固定的“上游”主机中继其所有消息。

如果您只是安装 Debian 包,它将替换之前的任何 MTA。

答案2

我的建议也是 nullmailer。我们之前也遇到过类似的情况(需要在 Zimbra 盒子中使用第二个 MTA 来处理系统生成的邮件),它非常符合要求。

然而,不使用 /var 的要求是一个障碍。您能详细说明一下原因吗?如果问题完全出在使用磁盘上,您可以将 nullmailer 的队列挂载到 tmpfs 上。这不太安全,但至少它根本不会接触磁盘。

答案3

恕我直言,最简单的方法是安装 postfix (如果 debconf 询问您问题,请选择“互联网站点”),然后运行以下命令:

postconf -e relayhost=other.mailserver.com
postconf -e mailname=my.domainname.com

只要 中指定的 SMTP 服务器relayhost不需要身份验证、允许您中继或者是收件人地址的有效目标,就可以使用。

mailname参数将是默认域名。因此,如果您向 foo 发送邮件,它将发送至[电子邮件受保护]。用户栏发送的邮件将来自[电子邮件受保护]

如果您确实需要进行身份验证并希望支持 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

然后/etc/postfix/sasl_password_maps有这样的内容:

/./ username:password

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

相关内容