将所有邮件重定向到文件

时间:2013-03-14 20:35:43

标签: php linux bash unix sendmail

多年前,我遇到了一小段内联bash代码,这些代码进入了sendmail_path配置条目的php.ini文件。内联bash片段的目的是将所有邮件重定向到文件。不幸的是,我丢失了片段。我想将它用于我的开发机器。有没有人见过这样的片段?

2 个答案:

答案 0 :(得分:3)

$ php -d sendmail_path="cat - >> /tmp/mailfile" -r "var_dump(mail('me@localhost','foo','bar'));"
bool(true)
$ cat /tmp/mailfile 
To: me@localhost
Subject: foo
X-PHP-Originating-Script: 1000:Command line code


bar

答案 1 :(得分:0)

当两个电子邮件并行发送时,基于“cat”的一个班轮可能会创建竞争条件。恕我直言,他们可能适合低负荷简单的环境。

我会建议基于解决方案,例如在procmail上。 Procmail可以在传递到邮箱文件或传递给maildir时使用锁。

sendmail_path="/usr/bin/procmail -m /etc/procmailrcs/catch-mail.rc"

/etc/procmailrcs/catch-mail.rc:

# deliver messages to /tmp/mailfile mailbox file
DEFAULT=/tmp/mailfile