我正在尝试使用 Amazon 的 SES 设置 Exim。我定义了一个路由器,用于捕获全部电子邮件并通过 SES 发送。我不想过滤任何出站邮件。一切都通过 SES。我的路由器配置如下:
begin routers
aws_ses:
debug_print = "R: aws_ses for $local_part@$domain"
driver = accept
require_files = AWS_SES_SEND_EMAIL : AWS_CREDENTIALS_FILE
transport = aws_ses_pipe
no_more
除了一个问题之外,它运行良好。每当我得到任何入站电子邮件,Exim 也会尝试通过 SES 发送它们。这就是问题所在。本地电子邮件应该被 Exim 捕获。我刚刚尝试添加这个前我的 aws_ses 路由器,但它不起作用。Exim 仍然使用 aws_ses 路由器来接收发往 mydomain.com 的电子邮件
localusers:
driver = accept
domains = mylocaldomain.com
transport = virtual_userdelivery
那么,我如何让 Exim 通过 aws_ses 路由器发送所有出站电子邮件,但同时告诉它捕获所有发往 mydomain.com 的入站邮件,以便将其传递到用户的邮箱?
谢谢。
ps 您可以在教程我已经整理好了。不过相关配置粘贴在这个问题里了。
答案1
路由器按顺序尝试。您应该能够找到名为“dnslookup”或“smarthost”或类似名称的路由器,然后将新路由器放在那里。除非您拥有丰富的 Exim 经验(RCPT ACL 也是如此),否则不建议完全替换路由器列表。
您应该有一个名为 的域列表local_domains
,它是此主机本身要处理的域的列表。然后,您的aws_ses
路由器将包含一行:
domains = !+local_domains
在该先决条件下,发送到local_domains
域列表中的域的邮件将不会被路由器处理aws_ses
。
mydomain.com
接下来:您在文本中讨论,但mylocaldomain.com
在模糊的示例中使用。这样的错误肯定可以解释您所看到的内容。:)
然后:使用类似如下的方法:
$ exim -d -bt [email protected]
获得有关 Exim 在决定如何处理该地址时做出的决定的大量调试输出。