基本的eximconfiguration – 将所有出站邮件redirect到本地地址

我已经在开发服务器上运行。

目前无法在本地以外的任何地方发送邮件。 这很好,但我不希望能够意外地发送垃圾邮件给我们的整个用户群。 但是这确实使得很难看到电子邮件系统是否正在工作。

因此,我想捕获所有试图发送的电子邮件(这些电子邮件是由基于Web的CRM系统在同一台服务器上生成的),并将它们存储在共享邮箱中(我计划通过Dovecot / IMAP)

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

这可能吗? 我是一个完整的初学者,为此而苦苦挣扎。

你当然可以。 您必须configuration一个“redirect”路由器,如下所示:

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

NB“看不见”的意思是“继续与其他路由器”。 如果你只想要陷阱电子邮件,而不是转发给预期的收件人,只要将其删除。

看一下exim的文档 ,里面充满了这样的例子。

一个简单的解决scheme是指定一个新的路由器和相应的传输。 首先,我们将eximconfiguration为侦听要发送到单个邮箱的电子邮件的不同端口。 本示例使用127.0.0.1上的端口2525 ,因此请确保您的CRMconfiguration为在运行testing时通过此端口上的SMTP发送消息。 如果邮件服务器也用于其他目的,则需要将此地址和端口添加到现有的local_interfacesconfiguration中。

 local_interfaces = <; 127.0.0.1.2525 

接下来我们需要一个我们在下面的例子中称为development的路由器。 我们指定一个条件,即在端口2525上通过SMTP接收的消息应该被该路由器接受,并传递到称为single_box.的传输single_box.

这应该放在标有begin routers的eximconfiguration部分之后

 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 

接下来我们需要定义一个transport,它将路由消息并保存在某个地方。 我们将保持简单并将其保存在一个邮箱中。 运输configuration可以放置在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 

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