为了让我的 webb-app 单元测试能够在我的本地开发环境中运行(即涉及电子邮件传递),我安装了 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 以重定向发往该地址的所有邮件以及丢弃他们之后。
看一看这里以获得一些提示。