我设置了一台运行 sendmail 的服务器 A,仅用于向其他服务器发送电子邮件。我输入了:
Connect:[Server B's external IP] RELAY
在 /etc/mail/access 文件中并编译为 access.db。
我有服务器 B 来使用服务器 A 发送电子邮件。
有时我会收到被拒绝的电子邮件:
554 5.7.1 <localhost.localdomain>: Helo command rejected:
看来邮件服务器 A 没有正确发送电子邮件,它应该在发送时将服务器 B 的域名放在电子邮件中,不应该。我相信这就是我的邮件被拒绝的原因。
问题:如何配置服务器 A 上的 Sendmail 以不使用 localhost.localdomain?
更多日志:在服务器 A 的邮件日志上:
May 1 15:23:23 serverA sendmail[14485]: p415N29k014483: to=<[email protected]>, delay=00:00:19, xdelay=00:00:01, mailer=esmtp, pri=453786, relay=emdch-mx31.nt.gov.au. [203.42.37.91], dsn=5.7.1, stat=Service unavailable
May 1 16:09:44 serverA sendmail[16131]: p4169GH4016129: to=<[email protected]>, delay=00:00:26, xdelay=00:00:01, mailer=esmtp, pri=461650, relay=emdch-mx21.nt.gov.au. [203.42.37.81], dsn=5.7.1, stat=Service unavailable
更新
最好将每个服务器设置为具有完整的 URL 名称:serverA.example.com。另外,不要更改 127.0.0.1 localhost.localdomain localhost。使用您的实际服务器 IP 映射创建一个新条目:[ip] serverA.example.com serverA 这应该可以解决问题,并且 sendmail 将响应完整的 URL 名称而不是 localhost.localdomain。
谢谢蒂姆
答案1
“helo
命令被拒绝”意味着您的“A”服务器甚至没有到达 SMTP 中继对话中的第一个动词。因此,信封发件人和收件人不是问题所在。在发生错误时,他们甚至还没有被发送。
错误是响应代码 554,扩展响应代码 5.7.1。这是常规的“我不想和你 IP 地址的人交谈。”响应代码。原因由服务器所有者决定,可能因人而异
这个黑名单说明你是三等网络公民,我就是这样对待你的。
到
您知道,这里实际上没有 SMTP 中继服务器。
在这个特殊案例中,原因似乎是
名字
localhost.localdomain
不是独一无二的你,我决定不与那些用这个名字配置 MTS 的人交谈,因为这是他们 MTS 的唯一名称。您知道confDOMAIN_NAME
Sendmail 中的设置在哪里。