如何设置 exim 检查发件人字段

如何设置 exim 检查发件人字段

我们设置了 exim 来使用 Amazon SES 来路由您的所有电子邮件,但我们发现如果我们使用 cPanel 创建的电子邮件转发器,Amazon 就无法正确路由这些电子邮件,因为它来自 Amazon 未知的“发件人”字段。

因此,如果“发件人”字段来自非本地域,我们如何设置 exim 来绕过 Amazon 路由?

我收到的错误是:

2014-06-11 21:50:21 1Wuu9k-00073D-Gn ** XXX R=send_via_ses T=ses_smtp:数据结束后远程邮件服务器出现 SMTP 错误:主机 ses-smtp-us-west-2-prod-14896 026.us-west-2.elb.amazonaws.com [54.213.254.236]:554 消息被拒绝:电子邮件地址未经验证。

答案1

经过几个探索性问题后,我们得出结论,问题在于您需要检测消息发件人是否不在本地并以不同的方式路由。因此,首先,我将通过添加到 RCPT acl 来检测非本地发件人:

warn  condition = ${if forany{+local_domains}{eq{$item}{$sender_address_domain}}}
      set acl_m_use_ses=1

forany 循环遍历 +local_domains 列表中的所有域,并将每个域与 $sender_address_domain 进行比较。仅当发件人域位于该列表中时,才会设置该变量。然后在路由器中添加必须将变量设置为 1 的要求:

condition = ${if eq{$acl_m_use_ses}{1} {yes}{no}}

然后,如果 MAIL FROM 信封发件人没有被 exim 识别为本地域的域,则出站邮件将跳过该路由器。对于跳过此路由器的电子邮件,您必须有一个后续路由器,它将尝试使用 SMTP 直接发送电子邮件或通过不需要域匹配的其他智能主机发送电子邮件。

相关内容