设置 Exim 转发邮件

Joe*_*man 10 email centos exim

我正在尝试在新安装的 CentOS 上设置 Exim,以便它接收一组给定地址的邮件,并将邮件分别转发到另一个地址。例如,从 me@example.com 接收邮件将转发到 me@gmail.com。

我认为这应该是相当直接的......我之前使用 Sendmail 进行过这个工作,使用virtusertable- 有没有类似的东西我可以用 Exim 做?

我还希望能够发送邮件,但仅适用于从本地计算机(即,从服务器上运行的应用程序)发送的邮件 - 我不需要/不需要公开可用的 SMTP 服务器。

是否有任何其他设置我应该记住以确保邮件服务器是安全的?(即,防止转发)我假设它开箱即用是安全的。

谢谢。

小智 7

您将需要使用重定向路由器。阅读 Exim Router 规范,因为它可以做很多事情,因此会变得非常复杂。

基本上,你需要设置这样的东西(未经测试)


sender_redirect:
  driver = redirect
  data = ${lookup{$sender_address}lsearch{/etc/exim4/sender_redirects}}

然后在/etc/exim4/sender_redirects其中创建一个文件,其中包含以行分隔的冒号分隔格式的重定向,如下所示:


me@example.com: me@gmail.com
Run Code Online (Sandbox Code Playgroud)


小智 5

Joe Freeman 所说的一个变体,没有使用 dsearch(这给了我未知的查找类型“dsearch”错误):

在 exim.conf 的开头:

#Replace:
domainlist local_domains = lsearch;/etc/virtual/domains
#With:
domainlist local_domains = lsearch;/etc/virtual/domains : lsearch;/etc/virtual/forwarding_domains
Run Code Online (Sandbox Code Playgroud)

在“开始路由器”部分添加:

sender_redirect:
    driver = redirect
    domains = lsearch;/etc/virtual/forwarding_domains
    data = ${lookup{$local_part}lsearch{/etc/virtual/forwarding/$domain}}
Run Code Online (Sandbox Code Playgroud)

在 lsearch;/etc/virtual/forwarding_domains 中,每行添加一个域:

example.com
Run Code Online (Sandbox Code Playgroud)

并创建 /etc/virtual/forwarding/example.com 包含:

me: me@gmail.com
Run Code Online (Sandbox Code Playgroud)