我正在使用 smtproutes 通过外部 SMTP 服务器将用户的电子邮件发送到某些域,例如 example.com:externalsmtp.com
我如何将所有电子邮件发送到我的外部 SMTP(本地虚拟域除外)?
答案1
请参阅手册页qmail-remote(8)
,控制文件:
smt路由
人工 SMTP 路由。每条路由的形式为
domain:relay
,不带任何额外空格。如果domain
匹配主持人,qmail-remote 将连接到relay
,就像主持人将其relay
作为其唯一的 MX。(它还将避免CNAME
对往来。 主持人可以包含冒号和端口号来代替正常的 SMTP 端口 25:inside.af.mil:firewall.af.mil:26
relay
MX
可能为空;这告诉 qmail-remote照常查找记录。smtproutes 可能包括通配符:.af.mil: :heaven.af.mil
这里任何以
.af.mil
(但不是af.mil
其本身)结尾的地址都由其MX
记录路由;任何其他地址都被人为地路由到heaven.af.mil
。
这并不直接说明,但domain
也可以为空,这可以用作通配符。因此,您可以指定智能主机接力,正如 Dave Sill 在qmail 生活:3.2.4. 中继到智能主机。
echo ":smtp.example.com" > /var/qmail/control/smtproutes
因此,如果您想通过智能主机中继example.net
除之外的所有内容:example.org
example.net:
example.org:mail.example.org
:smtp.example.com
这里,
- 邮件
example.net
将查找 MX 记录(空“中继”), - 邮件
example.org
将通过mail.example.org
,并且 - 其余所有内容都将通过智能主机
smtp.example.com
(空即通配符domain
)。