我在 Slackware 13.37 上运行 Sendmail 8.14.4。我的 /etc/mail/access 文件中有以下内容,它可以正常工作,没有任何错误:
Connect:127 OK
Connect:10.0.1 RELAY # Net: office
Connect:50.116.6.8 RELAY # Host: glider
Connect:96.126.127.87 RELAY # Host: kite
上述配置还允许我通过 IPv6 向邮件服务器上的本地用户发送电子邮件。但是,它不允许我的办公室通过 IPv6 进行中继。我尝试了两种将 IPv6 网络添加到我的访问文件的方法。
方法 1:
Connect:127 OK
Connect:10.0.1 RELAY # Net: office
Connect:IPv6:2001:470:b:84a RELAY # Net: office
Connect:50.116.6.8 RELAY # Host: glider
Connect:96.126.127.87 RELAY # Host: kite
方法 2:
Connect:127 OK
Connect:10.0.1 RELAY # Net: office
Connect:[IPv6:2001:470:b:84a] RELAY # Net: office
Connect:50.116.6.8 RELAY # Host: glider
Connect:96.126.127.87 RELAY # Host: kite
但是,每当我尝试使用方法 1 或 2 时,我都无法通过主机中继电子邮件消息。
/var/log/maillog 条目:
May 31 11:57:15 freshsalmon sm-mta[25500]: ruleset=check_relay, arg1=[IPv6:2001:470:b:84a:223:6cff:fe80:35dc], arg2=IPv6:2001:470:b:84a:223:6cff:fe80:35dc, relay=[IPv6:2001:470:b:84a:223:6cff:fe80:35dc], reject=553 5.3.0 RELAY # Net:office
来自 telnet 的测试会话:
syzdek@blackenhawk$ telnet -6 freshsalmon.office.example.com 25
Trying 2001:470:b:84a::69...
Connected to freshsalmon.office.bindlebinaries.com.
Escape character is '^]'.
220 office.example.com ESMTP Sendmail 8.14.4/8.14.4; Thu, 31 May 2012 11:57:15 -0800
HELO blackenhawk.office.example.com
250 office.example.com Hello [IPv6:2001:470:b:84a:223:6cff:fe80:35dc], pleased to meet you
MAIL FROM:[email protected]
553 5.3.0 RELAY # Net:office
向 sendmail 中的访问文件添加 IPv6 地址/网络的正确方法是什么?
更新:显然我的访问文件无论如何都无法正常工作。删除行末的注释似乎已解决问题。以下是有效的行:
Connect:127 OK
Connect:IPv6:::1 OK
# Net: office
Connect:10.0.1 RELAY
Connect:IPv6:2001:470:b:84a RELAY
# Host: glider
Connect:50.116.6.8 RELAY
Connect:IPv6:2600:3c01::f03c:91ff:fedf:381a RELAY
# Host: kite
Connect:96.126.127.87 RELAY
Connect:IPv6:2600:3c00::f03c:91ff:fedf:52a4 RELAY
答案1
2001:470:b:84a 本身不是有效的 IPv6 地址。至少需要是 2001:470:b:84a:: 来指示尾随的零 - 或 sendmail 在日志中指示的完整地址 (2001:470:b:84a:223:6cff:fe80:35dc)。
一旦您有了地址,您尝试的第一个格式(IPV6:...)就应该可以工作。
答案2
根据配置自述文件,你应该删除括号