Postfix - 如何将外发邮件写入硬盘(而不是互联网)?

Postfix - 如何将外发邮件写入硬盘(而不是互联网)?

为了让我的 webb-app 单元测试能够在我的本地开发环境中运行(即涉及电子邮件传递),我安装了 postfix。

我发现每次我运行单元测试时,我的同事都会收到大量电子邮件。因此,我想配置 postfix,以便外发邮件实际上不会发送到外部世界,而是写入我的文件系统上的任意目录。

我搜索了很多,但还是没找到满足我需求的解决方案。我能找到的最接近的解决方案是通过自定义脚本路由邮件,如下面链接所示,但这还不能解决问题。

在此先感谢您的帮助——

如何让 Postfix 将所有邮件发送到自定义脚本?

答案1

是的,这是可能的。将以下几行添加到您的 /etc/postfix/master.cf:

fs_mail    unix  -       n       n       -       -       pipe
   flags=F user=%YOUR_USER_NAME% argv=tee /home/%YOUR_USER_NAME%/fs_mail.dump

然后将这一行添加到您的 /etc/postfix/main.cf:

default_transport = fs_mail

然后重新启动 Postfix 服务器

sudo /etc/init.d/postfix restart

它应该将所有发出的邮件保存到您的主文件夹中的 fs_mail.dump 文件中(将 %YOUR_USER_NAME% 替换为您的真实用户名;))

答案2

您可以使用 postfix 附带的 smtp-sink 实用程序:

smtp-sink -u root -d %d.%H.%M.%S 192.168.1.10:25 10

smtp-sink 写出带有 timestamp.hex 的文件

干杯

附言

您很快就接受了最佳答案。

聚苯硫醚

你特别提到了 postfix,所以我提到了 smtp-sink,但在我看来,fakemail 效果更好,因为它将文件写成 [电子邮件保护]其中 N 是同一地址的出现次数。http://sourceforge.net/projects/fakemail/

答案3

一种方法是将所有邮件重定向到本地帐户。

# 主文件

header_checks = regexp:/etc/postfix/header_checks

#/etc/postfix/header_checks

/./   REDIRECT [email protected]

答案4

我认为,最简单的方法是在开发机器上创建一个本地电子邮件地址,然后配置 postfix 以重定向发往该地址的所有邮件以及丢弃他们之后。

看一看这里以获得一些提示。

相关内容