Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 如何配置sendmail以通过特定服务器进行中继大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我的电缆调制解调器后面有一个很小的家庭服务器设置(布雷斯南通信).我希望能够让这个盒子发送电子邮件(不接收)通知和诸如此类的东西. 我已经做了什么: >我已经安装并配置了sendmail. >我添加了mail.bresnan.net作为我的smaRT_HOST指令. 我相信这个问题是 当我尝试发送电子邮件时,我在邮件日志中收到以下信息: Dec 22 10:24:17 batcave sendma
@H_618_6@
@H_618_6@
我的电缆调制解调器后面有一个很小的家庭服务器设置(布雷斯南通信).我希望能够让这个盒子发送电子邮件(不接收)通知和诸如此类的东西.

我已经做了什么:

>我已经安装并配置了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,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,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的服务器并且超时.

这是我的问题所在. Asstute读者会注意到pmx0.bresnan.net不是我的smaRT_HOST指令设置的.这是bresnan.com/net域的(外部?)MX服务器.显然,bresnan已经配置了网络,因此您无法从自己的网络中访问此服务器,而必须使用mail.bresnan.net服务器(我可以连接到该服务器).问题是我不知道如何告诉sendmail使用此服务器而不是域.

我试过的

>设置主机条目,以便pmx0服务器指向邮件IP地址.这不起作用,这是有道理的,因为Sendmail显然正在执行MX查询以查找返回IP的服务器,因此永远不需要执行“正常”DNS解析,因此hosts@L_874_10@永远不会涉及.

修复(针对所有外发邮件):

再次,道具进入webmin(见下面的注释)帮助我学习这个.如果您输入带有方括号的智能主机,指示sendmail不执行MX查找,那么:define(‘smaRT_HOST’,'[69.145.248.18]’)(修复引号 – >反引号)实际上没有邮件程序表.

修复(针对特定域):

如下所述,需要设置mailertable.但是,正如man page中所指出的,还需要在sendmail.mc@L_874_10@中启用此功能.

另请注意,邮件程序路由不会强制sendmail使用指定的服务器进行所有操作,它基于收件人的地址.这实际上对我来说没问题,因为我只需要发送到几个域(gmail,google托管和我的工作).

摘要

>将FEATURE(‘mailertable’)添加到sendmail.mc@L_874_10@中. (请注意,第一个引用应该是反引号.
>创建/ etc / mail / mailertable@L_874_10@(参见man page)
>创建@L_295_0@mapfile:sudo makemap hash /etc/mail/mailertable.db\u0026lt;在/ etc /邮件/ mailertable的
>重建你的配置制作-C / etc / mail
>重启sendmail:service sendmail restart

注意:我强烈建议使用WebMin编辑/重建这些@L_874_10@.没有它,我会疯狂地试图弄清楚为什么我的mailertable@L_874_10@被忽略了.

@H_403_41@

解决方法

您可以通过在sendmail / etc / mail / mailertable@L_874_10@中添加一个简短条目来绕过MX查找.

该@L_874_10@的内容应该只有一行,如:

bresnan.net       esmtp:[69.145.248.18]

保存@L_874_10@并重新启动sendmail(如果必须手动完成,则重建sendmail.cf).

@H_403_41@ @H_403_41@

大佬总结

以上是大佬教程为你收集整理的linux – 如何配置sendmail以通过特定服务器进行中继全部内容,希望文章能够帮你解决linux – 如何配置sendmail以通过特定服务器进行中继所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。