LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1023|回复: 9

请问:为什么2个sendmail互发mail总是失败?

[复制链接]
发表于 2005-3-2 18:12:22 | 显示全部楼层 |阅读模式
sendmail1:
ip:10.10.70.18
有用户example
cat local-host-names
example.com
mail.example.com

sendmail2:]
ip:10.10.70.19
有用户hx
cat local-host-names
hx.com
mail.hx.com

2个的Daemon都改成0.0.0.0了,access也加了10.10.70 RELAY
named在10.10.70.18上分别解析hx.com和example.com,都加上了MX和对应的A记录.
DNS都设为10.10.70.18

在sendmail1上给sendmail2上的用户hx发mail:
echo "hello test"|mail -vs hello hx@hx.com

mail
MAILER-DAEMON@localh  Fri Feb 18 21:51  64/2239  "Returned mail: see transcript for detail"

   ----- The following addresses had permanent fatal errors -----
<hx@hx.com>
    (reason: 553 5.3.5 system config error)

   ----- Transcript of session follows -----
553 5.3.5 mail.hx.com. config error: mail loops back to me (MX problem?)
554 5.3.5 Local configuration error

后来我在sendmail.org上查找FAQ,发现如下:
You can also get this error message (MX loops ...) when two sendmail systems talk to each other, and both have the same value of $j. The best solution is "don't do that."
但是如何修改$j呢?
发表于 2005-3-2 19:17:13 | 显示全部楼层
sendmail -d0</dev/null
把结果贴出来看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-3 08:13:49 | 显示全部楼层
[root@example ~]# sendmail -d0</dev/null
Version 8.13.1
Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
                MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
                NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF STARTTLS TCPWRAPPERS
                USERDB USE_LDAP_INIT

============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = localhost
  (canonical domain name) $j = localhost.localdomain
         (subdomain name) $m = localdomain
              (node name) $k = example
========================================================

Recipient names must be specified

我在2台机器上dig hx.com mx和dig example.com mx都正常
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-3 11:04:16 | 显示全部楼层
终于好了.原来可以通过修改/etc/hosts来改$j.另外,可以通过修改sendmail的配置文件来改吗?
回复 支持 反对

使用道具 举报

发表于 2005-3-3 11:04:50 | 显示全部楼层
= localhost
(canonical domain name) $j = localhost.localdomain
(subdomain name) $m = localdomain
注释掉/etc/hosts 127.0.0.的行在运行sendmail -d0</dev/null
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-3 11:29:22 | 显示全部楼层
[root@example mail]# sendmail -d0</dev/null
Version 8.13.1
Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
                MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
                NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF STARTTLS TCPWRAPPERS
                USERDB USE_LDAP_INIT

============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = example
  (canonical domain name) $j = example
         (subdomain name) $m = <null>
              (node name) $k = example
========================================================

Recipient names must be specified
回复 支持 反对

使用道具 举报

发表于 2005-3-3 19:06:56 | 显示全部楼层
你着么成功,把经验共享一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-4 08:09:32 | 显示全部楼层
把/etc/hosts中的 localhost.localdomain改为example.localdomain就好了.但我不知道能不能通过修改sendmail的配置文件达到这样的效果,kevin老师能说说吗?
回复 支持 反对

使用道具 举报

发表于 2005-3-4 09:46:23 | 显示全部楼层
sendmail我也不是很熟,一般我的作法是在/etc/hosts里定义一个本机域名例如
x.x.x.x   mail.imu.sh  imu.sh
就好了!
一般是名字冲突的问题, 在apache里也长碰到。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-4 10:59:03 | 显示全部楼层
谢谢kevin老师和shenhanchinese!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表