我在电缆调制解调器(bresnan通讯)后面有一个很小的家庭服务器设置。我希望此框可以发送电子邮件(不接收)以进行通知和其他方式。
我已经做了什么:
- 我已经安装并配置了sendmail。
- 我已添加
mail.bresnan.net
为SMART_HOST
指令。
我相信问题是
当我尝试发送电子邮件时,我的邮件日志中显示以下内容:
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530: from=aburns,
size=140, class=0, nrcpts=1,
msgid=<201012221724.oBMHOHrs001530@bresnan.net>,
relay=aburns@localhost
Dec 22 10:24:17 batcave sm-mta[1531]: oBMHOHWZ001531: from=<aburns@bresnan.net>,
size=397, class=0, nrcpts=1,
msgid=<201012221724.oBMHOHrs001530@bresnan.net>,
proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Dec 22 10:24:17 batcave sendmail[1530]: oBMHOHrs001530:
to=<my@work-address.com>, ctladdr=aburns (1000/1000),
delay=00:00:00, xdelay=00:00:00, mailer=relay,
pri=30140, relay=[127.0.0.1] [127.0.0.1],
dsn=2.0.0, stat=Sent (oBMHOHWZ001531 Message accepted for delivery)
Dec 22 10:24:18 batcave sm-mta[1517]: oBMH9mVv001357:
to=<my@work-address.com>, ctladdr=<aburns@bresnan.net>
(1000/1000), delay=00:14:30, xdelay=00:00:42, mailer=relay,
pri=300339, relay=pmx0.bresnan.net. [69.145.248.1],
dsn=4.0.0, stat=Deferred: Connection timed out with pmx0.bresnan.net.
您可以看到我的sendmail服务器在哪里接受该邮件,然后再尝试将其移交给bresnan的服务器并超时。
这是我的问题所在。精明的读者会注意到,这pmx0.bresnan.net
不是我将SMART_HOST
指令设置为的内容。这是MX
bresnan.com/net域的(外部)服务器。显然bresnan已配置了他们的网络,因此您不能从他们自己的网络内访问此服务器,而必须使用该mail.bresnan.net
服务器(我可以连接到该服务器)。问题是我不知道如何告诉sendmail使用此服务器,而不是域。
我尝试过的
- 设置主机条目,以便pmx0服务器指向邮件IP地址。这是行不通的,这很有意义,因为sendmail显然正在执行MX查询以查找返回IP的服务器,因此不再需要执行“常规” DNS解析,因此主机文件永远不会涉及。
修复(对于所有外发邮件):
再次,道具转到webmin(请参阅下面的注释)以帮助我学习这一点。如果您输入带有方括号的smarthost,指示sendmail不要执行MX查找,那么:(define('SMART_HOST','[69.145.248.18]')
固定引号->反引号)实际上在没有邮件发送器表的情况下可以工作。
修复(针对特定域):
如下所述mailertable
,需要设置a 。但是,正如手册页中指出的那样,还需要在sendmail.mc
文件中启用此功能。
还要注意,邮寄者路由不会强制sendmail使用指定的服务器进行所有操作,它基于收件人的地址。这实际上对我来说还可以,因为我只需要发送到几个域(gmail,托管Google和我的工作)。
总结:
- 添加
FEATURE('mailertable')
到您的sendmail.mc
文件。(请注意,第一引号应该是反引号。 - 创建
/etc/mail/mailertable
文件(请参见手册页) - 创建一个映射文件:
sudo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertable
- 重建您的配置
make -C /etc/mail
- 重新启动sendmail:
service sendmail restart
注意:我强烈建议使用WebMin编辑/重建这些文件。没有它,我会疯狂地试图弄清楚为什么我的mailertable文件被忽略了。