exim4智能主机与发件人validation

我正在尝试在ISP邮件服务器之前将exim4设置为智能主机。 一切工作正常,除了一些电子邮件来自无效的发件人(最有可能的垃圾邮件)。 ISP拒绝他们

450 4.1.8 <[email protected]>: Sender address rejected: Domain not found

这会导致exim smarthost重试,从而不必要地增加队列大小。

最近我设法configuration这是使用/etc/exim4/local_sender_callout文件。 但是,然后标注到ISP,然后拒绝

554 5.7.1 <[email protected]>: Relay access denied (对于任何地址,甚至有效的地址)。 设置/etc/exim4/passwd.client在这种情况下似乎不起作用…

如何设置发件人validation(使用,或者最好没有标注)与exim智能主机?

澄清 :我的exim不是一个开放的中继,它已经只指定了它接受电子邮件的域名限制列表。 这些电子邮件然后被发送到智能主机传递到实际的邮箱。 设置图可能看起来像这样。

Internet -> my exim(mx) -> ISP(smarthost) <- users accessing email via POP/IMAP

我的域的mxlogging指向我的exim服务器。 然而,ISP接受我的域名的电子邮件并将其存储在邮箱中。

实际上,您正在设置一个前端MX,并在最终目的地更深处设置更严格的filter。 解决这个问题的最好方法是在前端至less要有限制性。

因为你有一个智能主机,所以你发送“任何域”的电子邮件到智能主机。 这与域的有效性检查结合严重:在为RCPT命令定义的ACL中的某处,应该有一个require verify = sender ,以确保Exim有一个方法可以在接收邮件之前向发件人域发送电子邮件。

由于您始终在线,因此我build议您在smarthost路由器之前直接放置一个额外的路由器。 假设智能主机有domains = ! +local_domains domains = ! +local_domainsno_more ,然后添加no_verify智能主机路由器和之前,插入此路由器:

 remote_dns_verify: driver = dnslookup domains = ! +local_domains transport = remote_smtp # ignore_target_hosts = +some_hostlist_matching_rfc1918_and_so_on same_domain_copy_routing verify_only no_more 

有了这个, validationpath将不会使用智能主机,所以你将不再有“一切的路线”。 validation将只能路由具有DNS的远程域名,所以您将不再接受您的ISP因无法路由而拒绝的电子邮件。

之后,我会考虑设置一些匹配特定远程错误的重试规则,以停止重试ISP拒绝的邮件。 有关更多信息,请参阅http://www.exim.org/exim-html-current/doc/html/spec_html/ch-retry_configuration.html