![Exim 转发不通过 TLS 发出](https://linux22.com/image/619410/Exim%20%E8%BD%AC%E5%8F%91%E4%B8%8D%E9%80%9A%E8%BF%87%20TLS%20%E5%8F%91%E5%87%BA.png)
我正在尝试让 Exim 使用 STARTTLS 发送仅转发的电子邮件。
我有一台服务器,在 example-accepting.com 为用户接收电子邮件。所以我想[电子邮件保护]将所有电子邮件转发至[电子邮件保护]。如果我从 example-accepting.com 上的命令执行此操作... echo "test" | mail -s "ssl/tls test"[电子邮件保护] 成功!已通过 TLS 发送,但如果我发送电子邮件至[电子邮件保护]转发失败,它不是通过 TLS 发送的。我尝试通过 /etc/aliases 和用户 .forward 文件转发电子邮件。电子邮件确实已发送,但不是通过 TLS 发送的。
为什么当我从命令运行“mail”时它正常工作,但 .forward 没有使用 TLS?
谢谢
答案1
您对可以使用哪个路由器有一些限制,这些限制是基于某些本地配置应用的。也许您$acl_m_foo
在 ACL 中设置了一些数据,这些数据稍后会在路由器中进行评估,也许相关路由器正在检查$sender_host_address
。
使用来查看 Exim 通常如何将邮件路由到该地址,使用来查看 Exim 假定邮件发自 时做出的决定。要查看更多数据,请使用选项 进行调试,它还需要一堆标签来启用更多调试(例如)。exim -bt [email protected]
exim -bh 192.0.2.4 -bt [email protected]
192.0.2.4
-d
-d+expand+acl
在正常配置中,路由器只会查看收件人,而不会查看发件人,因此如果收件人 A 被路由为使用 TLS 处理本地提交的邮件,则如果邮件来自远程,路由器也会这样做。不过,Exim 功能强大且足够灵活,因此您可能会弄巧成拙。
答案2
我会尝试设置hosts_require_tls
以包含您要转发到的域。这应该会导致 Exim 始终对服务器使用 TLS。这可能需要在使用 smtp 驱动程序的所有传输上进行设置。(某些配置有多个 smtp 传输。)
编辑:如果它从命令行运行,则您的配置似乎正确。您正在运行的守护程序可能正在运行旧配置。您可以使用以下命令进行测试
sendmail -odq [email protected] [email protected]
Subject: Test message
test
.
这应该会将消息添加到队列中。下次运行队列时,它将被传送。检查该消息以查看它是否使用 TLS 传送。您可以通过向 Exim 发送信号来让其重新加载其配置。HUP
该命令exiwhat
应该会告诉您 Exim 守护进程的 PID。