可能的重复:
轻量级发送 SMTP 服务器
我正在寻找一个无头服务器的最小邮件解决方案(MTA),它为本地用户生成电子邮件,并从 cron 作业等生成完全合格的地址。理想情况下,发送给本地用户的所有邮件foo
都应映射到foo@mydomain
,并可能进行修改uid
<1024,并发送到外部 smtp 服务器,而不涉及/var/mail
.
几年前,我用过sSMTP对于类似的任务,我想知道这是否仍然是未来的方向?另外,我应该/可以删除多少默认的 Debian 邮件系统?
更新最后用谷歌搜索了一下,明显的候选者似乎是
- sSMTP: 没有积极开发
- 电子SMTP:根据主页显示,未积极开发
- 移动SMTP:推荐在 sSMTP 前面http://www.scottro.net/qnd/qnd-ssmtp.html
- 空邮件程序:吉尔斯建议
虽然电子SMTP不再开发了,它似乎有最好的文档。但它不太符合我的需求,它似乎坚持foo
通过邮件传递代理(MDA)将邮件传递给本地用户,而不是通过 smtp 将其推送到[email protected]
.或者,如果我添加qualify_domain
到配置中,它可能会执行映射。可能需要尝试一下...
空邮件程序似乎正在运行队列/var
,这不是我想要的。
有人有这些方面的经验吗?
答案1
答案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
所有邮件都将使用指定的用户名和密码发送到您的中继主机。