Ice*_*You 5 email ubuntu email-server exim
我有一个 Ubuntu 10.04 VPS 设置来管理 sub.example.com,我已经将 Exim 配置为使用Linode 库中的本教程发送电子邮件。这是有效的,但除了发送电子邮件之外,我意识到我需要一个非根电子邮件地址 (admin@sub.example.com) 转发给我 (me@gmail.com)。
我已经阅读了关于这个 [1] 的 Exim 文档,但我并没有真正明白我应该做什么(似乎希望读者已经知道要更改哪些文件以及某些指令的作用)。从 09 年开始,这里也有一个类似的问题,我不知道哪些(如果有)解决方案适用于我的案例,或者需要使用建议的行修改哪些文件。
TBH,如果有一种非常简单的方法可以在没有 Exim 的情况下做到这一点,并且不会与我已经设置的方式通过 Exim 发送电子邮件发生冲突,我也会很高兴。我已经尝试修改/etc/aliases无济于事。
您可能会说我对配置 MTA 还很陌生……提前致谢。
[1] 我显然无法链接到,因为这是我在 ServerFault 上的第一篇文章。我相信相关部分是第 22 章 - 重定向路由器。
在下面的解释中,我假设您按照您提到的 URL 中的说明进行操作,并且您选择了“互联网服务器”。我还假设“localhost”是您的 exim 配置为识别为本地域的有效域名之一。
首先,您放入 /etc/aliases 的格式应该是:
admin: me@gmail.com
Run Code Online (Sandbox Code Playgroud)
你不需要在 exim 系统上运行 newaliases,它只是作为一个兼容层提供给需要更“sendmail-like”环境的应用程序。Exim 在第一次读取 /etc/aliases 文件时直接扫描它的内容并缓存结果,如果有的话,记住它以供后续查找。它实际上并不像 sendmail 那样使用 /etc/aliases.db 文件。
当您编辑 /etc/aliases 时,您可以测试如何从命令行处理地址。在第一个示例中,我的系统未配置为处理管理员别名。它抱怨说它不知道如何处理这个地址,将其描述为无法投递:
[todd@tlyons /etc/exim4]$ grep admin /etc/aliases
[todd@tlyons /etc/exim4]$ exim -bt admin@localhost
R: system_aliases for admin@localhost
admin@localhost is undeliverable
Run Code Online (Sandbox Code Playgroud)
在第二个示例中,我的系统已正确配置为处理管理员别名。解释如下:
[todd@tlyons /etc/exim4]$ grep admin /etc/aliases
admin: me@gmail.com
[todd@tlyons /etc/exim4]$ exim -bt admin@localhost
R: system_aliases for admin@localhost
R: dnslookup for me@gmail.com
me@gmail.com
<-- admin@localhost
router = dnslookup, transport = remote_smtp
host gmail-smtp-in-v4v6.l.google.com [2001:4860:b007::1a] MX=5
host gmail-smtp-in.l.google.com [173.194.79.27] MX=5
host gmail-smtp-in-v4v6.l.google.com [209.85.225.27] MX=5
host alt2.gmail-smtp-in.l.google.com [74.125.45.27] MX=20
host alt3.gmail-smtp-in.l.google.com [173.194.66.27] MX=30
host alt4.gmail-smtp-in.l.google.com [173.194.65.27] MX=40
Run Code Online (Sandbox Code Playgroud)
第一个 R: 行是调试输出行,表示它正在使用“system_aliases”路由器处理电子邮件地址。它没有出来直接说出来,但它确实在 system_aliases 路由器中找到了“admin”并将其“扩展”为“me@gmail.com”。一旦 exim 将地址扩展为其他地址(或多个地址),它就会通过路由器重新运行每个地址,寻找匹配项。在上面的示例中,它通过路由器运行 me@gmail.com 地址,并且“dnslookup”路由器匹配。这意味着它确定需要使用 SMTP 将其发送到远程邮件服务器。其中一部分是查找 gmail.com 的 MX 记录,它会为您执行并显示该记录,以了解它将如何尝试递送该邮件。
因此,要回答您最初的问题,您可能只是在 /etc/aliases 中错误地输入了数据。左侧只是本地部分(即 user@domain.com 中的“用户”),后跟冒号 (:),后跟空格或制表符,后跟电子邮件地址(或电子邮件地址以逗号连接)将其交付给。您不能将完整的电子邮件地址放在左侧(冒号之前)。