我已经设置了一个 HAProxy 服务器,它将所有电子邮件代理到我的电子邮件服务器。这样做是为了安全目的。
外部 IP:
Proxy server (HAProxy 1.3.26): 192.168.0.1
Mail server (Exim 4.63): 192.168.0.2
Both servers are CentOS 5.8.
以下是我的 HAProxy 配置的一部分:
defaults
mode tcp
log global
option dontlognull
option httpclose
option tcplog
option forwardfor
option redispatch
listen smtp 192.168.0.1:25
server mail0 192.168.0.2:25 maxconn 5000
listen imap 192.168.0.1:143
server mail0 192.168.0.2:143 maxconn 5000
问题如下:
2012-09-13 22:47:04 1TCERM-0000aP-1A => [email protected] R=dnslookup T=remote_smtp H=example.com [192.168.0.1] X=TLSv1:AES256-SHA:256 DN="/C=XX/ST=XX/L=XX/O=XX/OU=XX/CN=example.com/[email protected]" C="250 OK id=1TCERM-0000aS-IJ"
2012-09-13 22:47:04 1TCERM-0000aP-1A Completed
2012-09-13 22:47:04 1TCERM-0000aS-IJ ** [email protected]: Too many "Received" headers - suspected mail loop
2012-09-13 22:47:04 1TCERM-0000aU-KD <= <> R=1TCERM-0000aS-IJ U=exim P=local S=9409 from <> for [email protected]
2012-09-13 22:47:04 1TCERM-0000aS-IJ Completed
Exim 日志中有许多这样的条目。你会看到我发送了[电子邮件保护]到[电子邮件保护] 电子邮件由 HAProxy 服务器接收并代理到邮件服务器。问题是电子邮件随后循环发送。我不明白问题出在哪里。
我的域名 example.com 的 MX 记录指向 192.168.0.1。邮箱是在 192.168.0.2 服务器上创建的。
以下是退回的电子邮件标题的一部分(这些部分重复多次):
已收到:来自 example.com ([192.168.0.1] helo=example.com),由 dc.example.com 使用 esmtps (TLSv1:AES256-SHA:256) (Exim 4.63) (envelope-from ) id 1TCDdv-0007PI-Jf 发送 [电子邮件保护]; 2012 年 9 月 13 日星期四 21:55:59 +0400 已接收:来自 example.com ([192.168.0.1]),由 dc.example.com 使用 smtp (Exim 4.63) (envelope-from) 发送或[电子邮件保护]; 2012 年 9 月 13 日星期四 21:55:59 +0400 test1
如果有人能帮助我解决这个问题,我将不胜感激。如果您需要详细信息、日志等,请告诉我。
答案1
这是因为您忘记设置域的本地交付!结果...
发送到域的邮件通过代理/防火墙到达目的地/本地服务器,然后从目的地/本地服务器返回到代理/防火墙服务器,因为 exim 与此域使用远程邮件传递并检查指向防火墙的 mx 记录!这就是你陷入循环的原因!
一如既往地为我的“俄语”感到抱歉:))