我的电缆调制解调器(bresnan 通信)后面有一个小型家庭服务器设置。我希望能够让这个框发送电子邮件(不接收)通知和诸如此类。
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.
Run Code Online (Sandbox Code Playgroud)
您可以看到我的 sendmail 服务器在何处接受消息进行传递,然后在何处尝试将其移交给 bresnan 的服务器并超时。
这就是我的问题所在。精明的读者会注意到这pmx0.bresnan.net不是我所SMART_HOST设定的指令。这是MXbresnan.com/net 域的(外部?)服务器。显然 bresnan 配置了他们的网络,因此您无法从他们自己的网络内访问该服务器,而必须使用该mail.bresnan.net服务器(我可以连接到该服务器)。问题是我不知道如何告诉 sendmail 使用此服务器而不是域。
同样,道具转到 webmin(见下面的注释)以帮助我学习这一点。如果您使用方括号输入智能主机,指示 sendmail 不执行 MX 查找,那么:(define('SMART_HOST','[69.145.248.18]')修复引号-> 反引号)实际上无需邮件程序表即可工作。
正如下面指出的那样,需要设置一个mailertable。但是,正如手册页中所指出的,还需要在您的sendmail.mc文件中启用此功能。
另请注意,邮件程序路由不会强制 sendmail 使用指定的服务器进行所有操作,它基于收件人的地址。这对我来说实际上没问题,因为我只需要发送到几个域(gmail、谷歌托管和我的工作)。
总结:
FEATURE('mailertable')到您的sendmail.mc文件中。(请注意,第一个引号应该是反引号。/etc/mail/mailertable文件(参见手册页)sudo makemap hash /etc/mail/mailertable.db < /etc/mail/mailertablemake -C /etc/mailservice sendmail restart注意:我强烈建议使用 WebMin 来编辑/重建这些文件。如果没有它,我会发疯地试图找出为什么我的 mailertable 文件被忽略了。
您可以通过在 sendmail/etc/mail/mailertable文件中添加一个简短的条目来绕过 MX 查找。
文件的内容可能应该只有一行,例如:
bresnan.net esmtp:[69.145.248.18]
Run Code Online (Sandbox Code Playgroud)
保存文件并重新启动 sendmail(或者如果必须手动完成,则重建您的 sendmail.cf)。
| 归档时间: |
|
| 查看次数: |
83681 次 |
| 最近记录: |