我有一台安装了 exim 的专用服务器。我在 hostgator 上还有一个常规共享托管帐户(“sharedhostingdomain.com”)。我想将 exim 配置为始终使用 hostgator 的 smtp 服务器(“mail.sharedhostingdomain.com”)来发送电子邮件。
问题是 hostgator 的 smtp 服务器显然需要身份验证,并且它位于不同的端口 (26)。由于我确实有合法帐户,所以我有访问凭据,但我不知道如何强制 exim 始终使用该 SMTP 服务器,而不是尝试直接连接到收件人的 smtp 服务器,以及在哪里指定这些访问凭据。
答案1
正如 Daniel 所说,您需要将 exim 配置为智能主机。这意味着定义一个像这样的路由器 (注意:主机名和端口号之间用双冒号分隔):
send_to_smarthost:
debug_print = "R: smarthost for $local_part@$domain"
driver = manualroute
domains = ! +local_domains
transport = remote_smtp_smarthost
route_list = * smarthost.example.com::26
host_find_failed = defer
no_more
然后是一个可以促使 Exim 进行身份验证的传输:
remote_smtp_smarthost:
debug_print = "T: remote_smtp_smarthost for $local_part@$domain"
driver = smtp
hosts_require_auth = smarthost.example.com
对于很多发行版来说,你现在只需将host:username:password
三元组放入其中即可/etc/exim/passwd.client
。
我认为,除了在路由器中指定端口外,您还可以使用port
传输中的命令。理论上,两者都可以工作。
答案2
我已经有一段时间没有对 exim 配置感兴趣了,但我可以给你一些基本的提示。这也取决于你运行的是哪个版本的 exim,以及哪个发行版(例如,debian 有一个 meta-config 配置文件,它为你抽象了很多这方面的内容)。
基本上,您需要为 exim 配置一个智能主机,并将其设置为 hostgator 的 SMTP 服务器。(在 exim 讨论中,这曾经被称为“路由器”,我认为现在仍然如此)。
您的路由器配置的传输需要被告知使用端口 26,而不是端口 25。(您可以设置“端口”变量)
您还需要设置 exim 客户端身份验证(例如,检查这里关于“通过 Exim 客户端进行身份验证”
抱歉,我不能说得更具体,但希望这足以帮助您。