我收到错误邮件:无法访问您的服务器;电子邮件未发送。当我查看 Exim 错误日志时,我看到了我发送邮件的主机,后面跟着“不允许中继”。我现在该怎么办?
答案1
您需要将主机的 IP 地址添加到“允许的中继器”列表中。
这是一篇关于如何在 Ubuntu 下配置的简单文章,其中有一个分割文件配置类型(与 debian 相同)因此与官方配置不同。
基本上:
您将
dc_relay_nets
下面的IP 地址设置update-exim4.conf.conf
为要从中中继的机器的 IP 地址。然后执行拆分配置并运行update-exim4.conf
,现在您应该能够从该 IP(或 IP 范围)中继电子邮件。
答案2
经过几个小时的反复思考,我终于找到了适合自己的答案。无论dpkg-reconfigure exim4-config
我尝试了多少次排列,添加条目dc_relay_nets或者dc_relay_domains或者直接编辑 exim4-local-domains.txt。结果发现有一个名为exim4-中继来自此 IP 地址列表的邮件.txt其中/etc/exim4
只需要您要中继的网络的 IP 地址或 CIDR 块(例如 1.2.3.0/24)。我的设置是每行一个条目,而不是像 exim4 中的其他条目一样使用分号分隔列表。在我的例子中,需要重新启动 exim4。
现在,有了这样的名字,似乎只有傻瓜才会错过如此明显的东西,但在我所有的互联网搜索中,这个文件名从来没有出现过,我读到的所有内容都指向使用dpkg-reconfigure
和处理dc_relay_nets。希望这可以帮助其他人避免浪费时间。
答案3
好吧,exim 认为接收电子邮件的域不是本地的(因此它应该中继它),并且正确地拒绝成为中继主机。您必须将您的域添加到 local_domains,如下所示:domainlist local_domains = @ : localhost : mydomain.com
答案4
我也遇到了同样的问题,只不过是因为我在 /etc/exim4/update-exim4.conf.confdc_other_hostnames='mail.example.com'
中dc_other_hostnames='example.com'