基本 exim 配置 - 将所有出站电子邮件重定向到本地地址

基本 exim 配置 - 将所有出站电子邮件重定向到本地地址

我在开发服务器上运行着 exim。

目前它无法将邮件发送到本地以外的任何地方。不过这没关系——我不想意外地向我们的整个用户群发送垃圾邮件。但这确实很难查看电子邮件系统是否正常工作。

因此,我想捕获 exim 尝试发送的所有电子邮件(这些电子邮件由同一服务器上的基于 Web 的 CRM 系统生成),并将它们存储在共享邮箱中(我计划通过 Dovecot/IMAP 让所有开发人员都可以访问)

即我想将所有出站电子邮件重定向到本地 mbox。

这可能吗?我完全是一个 Exim 新手,正在为此苦苦挣扎。

答案1

当然可以。您必须配置redirect路由器,如下所示:

catch_all_outgoing:
 driver = redirect
 data = admin [at] email
 unseen

注意:unseen意思是“继续使用其他路由器“。如果您只想捕获电子邮件和不是要将其转发给预期的收件人,只需将其删除即可。

看看进出口文件,到处都是这样的例子。

答案2

一个简单的解决方案是指定一个新的路由器和相应的传输。首先,我们将 exim 配置为监听要发送到单个邮箱的电子邮件的不同端口。此示例使用端口2525127.0.0.1因此请确保在运行测试时将您的 CRM 配置为通过此端口上的 SMTP 发送消息。如果邮件服务器还用于其他目的,则需要将此地址和端口添加到现有local_interfaces配置中。

local_interfaces          = <; 127.0.0.1.2525

接下来,我们需要一个路由器,我们development在下面的示例中调用它。我们指定一个条件,即通过端口上的 SMTP 接收的消息2525应被此路由器接受并传递给名为single_box.

这应该放在 exim 配置部分之后,标记为begin routers

begin routers

development:
 debug_print             = "R: client_development for $local_part@$domain"
 driver                  = accept
 condition               = ${if eq {$interface_port}{2525} {1}{0}}
 transport               = single_box
 no_more

接下来,我们需要定义一个传输,它将接收路由的消息并将它们保存在某个地方。我们将保持简单,并将它们保存在一个邮箱中。传输配置可以放在以begin transports

single_box:
 debug_print             = "T: single_box for $local_part@$domain"
 driver                  = appendfile
 group                   = Debian-exim
 mode                    = 0660
 mode_fail_narrower      = false
 delivery_date_add
 envelope_to_add         = true
 return_path_add         = true
 directory               = /home/mailspace/mailboxes/development/Maildir/
 maildir_format
 create_directory        = true

此示例在相应目录中创建 Maildir 格式的邮箱;请确保将此位置更改为适合您的服务器的位置。还请确保更改邮件服务器使用的组名;此处的示例假设使用标准 Debian 系统。Maildir 是一种常用格式,其中电子邮件消息保存为单个文件。可以使用文本编辑器轻松检查这些文件,如果您想使用 IMAP 使邮箱可用,dovecot 和 courier 支持 Maildir 格式。

相关内容