Exim catchall 并编写单独的电子邮件文件

Exim catchall 并编写单独的电子邮件文件

如果没有为该用户设置帐户,我希望将本地域的所有传入电子邮件仅路由到单个帐户。

我还希望将每封电子邮件写在用户文件夹中自己的文件中。

我有一个 catchall 用户,其路径为 /home/catchall/,我为此创建了一个邮件文件夹,但到目前为止,电子邮件仍无法投递(因此我的规则不起作用)或者它们确实投递到 /etc/mail/catchall 文件。

我一直在尝试将 Exim 配置整合在一起,但到目前为止似乎没有任何效果。

http://exim.org/exim-html-current/doc/html/spec_html/ch20.html

答案1

设置 Exim 以捕获发送到本地域的所有电子邮件:

后:

begin routers

添加:

catchall_pub:
  driver = redirect
  domains = +local_domains
  user = catchall
  data = catchall@localhost

这将启用对所有 local_domains 的捕获。它们的设置如下:

domainlist local_domains = @ : localhost : localhost.localdomain : example.com

注意:您可以简单地指定捕获单个域并为多个域制定多条规则。


为了配置 Exim 为每封电子邮件创建单独的文件,您只需将本地传送切换到目录模式,如下所示:

寻找:

local_delivery:
  driver = appendfile
  file = /var/mail/$local_part
  delivery_date_add
  envelope_to_add
  return_path_add
  group = mail
  mode = 0660

添加以代替file = /var/mail/$local_part

  directory = $home/mail
  maildir_format
  maildir_use_size_file  

注意:当用户收到第一封电子邮件时,这将自动在用户主文件夹中创建一个不错的邮件目录。该结构是众所周知的 cur/、new/、tmp/。

答案2

不太清楚你真正想要的是什么,说“每封电子邮件都写在它自己的文件中”

如果您使用 maildir 格式,所有消息无论如何都会存储在单独的文件中。只需在所有现有文件后添加特殊路由器:

unknown:
       driver          = redirect
       domains         = +local_domains
       data            = [email protected]

如果您使用邮箱格式并希望将特定用户的消息存储到他自己的邮箱文件中,请使用特殊传输:

# router
unknown:
           driver          = accept
           domains         = +local_domains
           transport       = t_unknown

# transport
t_unknown:
           driver          = appendfile
           file            = /var/mail/$domain/$local_part
           group           = mail
           user            = $local_part
           mode            = 0660

相关内容