设置是这样的(Ubuntu 9.10):
eth0: 1.1.1.1 name.isp.com
eth0:0 2.2.2.2 example2.com
eth0:1 3.3.3.3 example3.com
example2.com
并且example3.com
是需要向其用户发送电子邮件的网络应用程序。
2.2.2.2
指向,example2.com
反之亦然 (A/PTR)。MX -> 谷歌。Google 会处理所有收到的邮件。
3.3.3.3
指向,example3.com
反之亦然 (A/PTR)。MX -> 谷歌。Google 会处理所有收到的邮件。
要求:
必须禁用本地传送(必须传送到 MX 指定的服务器),以便以下工作(注意
bob
机器上没有本地用户,但存在现有的 bob 电子邮件用户):echo "Test" | mail -s "Test 6" [email protected]
我需要能够在发送电子邮件时指定从哪个 IP/域名发送电子邮件。
我和sendmail打了一架。运气不太好。
这是一些调试信息:
sendmail -d0.12 -bt < /dev/null
Canonical name: name.isp.com
UUCP nodename: host
a.k.a.: example2.com
a.k.a.: example3.com
...
Sendmail 始终使用规范名称(取自 eth0)。我发现它无法选择其中一个 UUCP 代号。它使用它来发送电子邮件:
echo -e "To: [email protected]\nSubject: Test\nTest\n" | sendmail -bm -t -v
[email protected]... Connecting to [127.0.0.1] via relay...
220 name.isp.com ESMTP Sendmail 8.14.3/8.14.3/Debian-9ubuntu1; Wed, 31 Mar 2010 16:33:55 +0200; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
>>> EHLO name.isp.com
我对其他 SMTP 解决方案没意见。我已经简要地查看了 nbsmtp、msmtp 和 nullmailer,但我不确定它们是否可以处理禁用本地传递和在发送电子邮件时选择不同的域。
我也知道通过使用来欺骗发件人字段,mail -a "From: <[email protected]>"
但这似乎是一个半解决方案(邮件仍然从 isp.com 域而不是正确的 example2.com 发送,因此 PTR 记录未被使用,并且被标记为垃圾邮件的风险更大/垃圾邮件发送者)。
我不知道
sendmail
,但与exim
您指定路由器和传输。路由器接收来自/接收地址的电子邮件并决定使用哪种传输方式。对于 (1),只需创建 smtp 传输而不创建本地传输。interface
对于 (2),您可以在创建传输时指定一个选项。配置文件将是这样的(不是完整的配置文件,未经测试):您是否尝试使用mailertable?映射
应该可以工作并使 sendmail 使用 MX 记录(未经测试)。
我已经按照您描述的方式设置了多个后缀实例,以便为两个命名空间提供外发邮件。这是一个相当复杂的过程(我的更多,因为我也是 DKIMProxy 签名),但一个好的起点是:http ://advosys.ca/papers/email/58-postfix-instance.html
我记录了整个事情(在 RHEL 5.6 上),所以我可以提供更多细节,所以如果你要走这条路,请告诉我 - 我可以提供更多信息。
Dan 发布的 Exim 方法看起来更干净——我坚持使用 postfix/DKIMProxy,因为我过去使用过这种方法。
干杯