sendmail中service.switch貌似根本没用

OpenBSD的安装、升级、更新等日常问题。

版主: chenjun天地乾坤

回复
JSJer
钛 Ti
帖子: 24
注册时间: 2011-11-15 8:25

sendmail中service.switch貌似根本没用

帖子 JSJer » 2011-12-21 18:11

按FAQ中说如果本机没有DNS解析,就在/etc/mail/下建一个service.switch。
然而当我建好后,sendmail总是无法向外网发信。总出现如下错误:

Dec 14 19:14:40 openbsd5 sm-mta[9797]: pBC3Ch9l014062: to=<someone@yeah.net>,
ctladdr=<root@openbsd5.someone.com> (0/0), delay=2+08:01:56, xdelay=00:00:00,
mailer=esmtp, pri=1560373, relay=yeah.net [220.181.12.218], dsn=4.0.0, stat=Defe
rred: Connection refused by yeah.net
如果删除这个文件,信就能发出去。

Dec 22 00:00:19 mail sendmail[10533]: pBLG0ACs010880: to=<someone@yeah.net>, ctladdr=<root@mail.someone.com> (0/0), delay=00:00:07, xdelay=00:00:06, mailer=esmtp, pri=30343, relay=yeahmx01.mxmail.netease.com. [46.137.252.186], dsn=2.0.0, stat=Sent (Mail OK queued as mx3,FlUQrECJQVr9q_FOiGaTBQ--.1694S2 1324461057)
可见,service.switch文件的确不需要啊。

头像
acheng
锌 Zn
帖子: 581
注册时间: 2011-07-07 21:52

回复: sendmail中service.switch貌似根本没用

帖子 acheng » 2011-12-23 10:56

没折腾过这个。但我刚才看了一下FAQ,上面说service.switch的作用是告诉sendmail使用/etc/hosts进行名称解析。应该是在DNS解析无法工作而需要手工在/etc/hosts里指定相关记录时才需要使用。你的/etc/hosts里面的相关记录都正确吗?

从错误信息来看,第一次sendmail使用yeah.net进行中继,但是被对方拒绝;第二次则使用yeahmx01,结果成功。所以问题的关键在于为什么第一次sendmail会找到yeah.net,而第二次则找到yeahmx01。有没有可能第一次你的/etc/hosts误导了sendmail?

头像
acheng
锌 Zn
帖子: 581
注册时间: 2011-07-07 21:52

回复: sendmail中service.switch貌似根本没用

帖子 acheng » 2011-12-23 10:58

JSJer 写了: 可见,service.switch文件的确不需要啊。
嗯,只有你想让sendmail使用/etc/hosts进行名称解析的时候才需要,如果DNS工作正常,则不许要它

JSJer
钛 Ti
帖子: 24
注册时间: 2011-11-15 8:25

回复: sendmail中service.switch貌似根本没用

帖子 JSJer » 2011-12-23 13:04

只用在/etc/resolv.conf 中指定一个nameserver就行了。
我想正常的系统,这一步应该都没问题吧。
我还是无法理解:

DNS解析无法工作
到底指的是怎么个情况?

头像
acheng
锌 Zn
帖子: 581
注册时间: 2011-07-07 21:52

回复: sendmail中service.switch貌似根本没用

帖子 acheng » 2011-12-25 0:11

比如说,某个服务器所在的网络上53端口被防火墙策略阻止,这样的话即使配置nameserver也无法进行DNS解析,这时候可能就需要使用/etc/hosts

JSJer
钛 Ti
帖子: 24
注册时间: 2011-11-15 8:25

回复: sendmail中service.switch貌似根本没用

帖子 JSJer » 2011-12-26 13:19

这样的话,/etc/hosts的确要用到。hosts文件中应该写yeah.net的mx纪录的ip地址。

[email="root@test"]root@test[/email]
~ #nslookup -q=mx yeah.net
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
yeah.net mail exchanger = 10 yeahmx01.mxmail.netease.com.
yeah.net mail exchanger = 50 yeahmx00.mxmail.netease.com.
Authoritative answers can be found from:

[email="root@test"]root@test[/email]
~ #nslookup yeahmx01.mxmail.netease.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: yeahmx01.mxmail.netease.com
Address: 46.137.252.186

JSJer
钛 Ti
帖子: 24
注册时间: 2011-11-15 8:25

回复: sendmail中service.switch貌似根本没用

帖子 JSJer » 2011-12-26 13:21

如果网关禁用DNS服务,就带来了很多不便。

头像
acheng
锌 Zn
帖子: 581
注册时间: 2011-07-07 21:52

回复: sendmail中service.switch貌似根本没用

帖子 acheng » 2011-12-26 13:54

JSJer 写了:如果网关禁用DNS服务,就带来了很多不便。
确实是这样。但是现实中什么样的情况都可能碰到。

回复

在线用户

正浏览此版面之用户: 没有注册用户 和 15 访客