设置是这样的(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是需要发送电子邮件给他们的用户的networking应用程序。
2.2.2.2指向example2.com ,反之亦然(A / PTR)。 MX – > Google。 Google处理所有收到的邮件。
3.3.3.3指向example3.com ,反之亦然(A / PTR)。 MX – > Google。 Google处理所有收到的邮件。
要求:
必须禁用本地交付(必须交付到MX指定的服务器),以便以下工作(请注意,机器上没有本地用户bob ,但存在现有的bob电子邮件用户):
echo "Test" | mail -s "Test 6" [email protected]
我需要能够指定发送电子邮件时从哪个IP /域名发送邮件。
我与sendmail进行了战斗。 没有太多的运气。
这里有一些debugging信息:
sendmail -d0.12 -bt < /dev/null Canonical name: name.isp.com UUCP nodename: host aka: example2.com aka: example3.com ...
Sendmail总是使用规范的名称(取自eth0)。 我找不到任何方法来select一个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解决scheme。 我已经简要地查看了nbsmtp,msmtp和nullmailer,但是我不确定他们能否处理在发送电子邮件时禁用本地交付和select不同的域。
我也知道使用mail -a "From: <[email protected]>"欺骗发件人字段mail -a "From: <[email protected]>"但它似乎是一个半解决scheme(邮件仍然是从isp.com域而不是正确的example2.com发送,所以PTRlogging未被使用,被标记为垃圾邮件/垃圾邮件的风险更大)。
我不知道sendmail ,但用exim指定路由器和传输。 路由器将电子邮件从/到地址,并决定使用哪个传输。 对于(1),只需创buildsmtp传输并且不需要本地传输。 对于(2),您可以在创build传输时指定一个interface选项。 一个configuration文件会是这样的(不是一个完整的configuration文件,没有testing):
begin routers example2_route: driver = dnslookup condition = ${eq{$sender_address_domain}{example2.com}} # 'from' domain is example2.com transport = example2_smtp example3_route: driver = dnslookup condition = ${eq{$sender_address_domain}{example3.com}} transport = example3_smtp begin transports example2_smtp: driver = smtp interface = 2.2.2.2 example3_smtp: driver = smtp interface = 3.3.3.3
你尝试使用mailertable吗? 制图
do.main esmtp:do.main
应该工作并使sendmail使用MXlogging(未经testing)。
我已经按照您描述的方式设置了多个postfix实例,以便为两个名称空间提供外发邮件服务。 这是一个相当复杂的过程(我的更多,因为我也是DKIMProxy签名),但一个好的起点是: http ://advosys.ca/papers/email/58-postfix-instance.html
我logging了整个事情(在RHEL5.6上),所以我可以提供更多的细节,所以让我知道如果你走这条路 – 我可以提供额外的信息。
Dan发布的Exim方法看起来更干净 – 我坚持使用postfix / DKIMProxy,因为我以前使用过这种方法。
干杯