php将电子邮件重定向到文件

时间:2012-02-09 23:15:05

标签: php email

我使用的是php5。

是否有一些设置或简单的php.ini指令会将所有电子邮件重定向到文件夹?

我希望在开发机器上将系统生成的所有电子邮件都发送到实际的接收器,但放在一个文件夹中。

感谢。

4 个答案:

答案 0 :(得分:0)

我认为你不会做这样的事情。邮件由邮件服务器发送,因此它必须是您的邮件服务器,将它们写入文件而不是发送它们。

为什么不直接将其发送到特殊的开发电子邮件?

样品:

define('DEBUG', true);

if(DEBUG)
{
    // Override recipient
    $recipient = 'development@domain.tld';
}

// Send mail...

答案 1 :(得分:0)

我自己在PHP中没有注意到任何设置。但是,如果您在开发服务器上使用Postfix,这是我制作的一个方法,可以将所有出站电子邮件重定向到单个(本地)地址:

/etc/postfix/main.cf :(将其添加到现有文件中,不要替换所有内容)

virtual_alias_maps = regexp:/etc/postfix/virtual

<强> /等/后缀/虚拟

/.*/ duskwuff@localhost

答案 2 :(得分:0)

您可以将邮件服务器配置为正常接受SMTP邮件,但无法将其转发到其他邮件服务器。如果您的邮件服务器支持它,请将其重定向到邮局主管帐户或您选择的任何其他地址。

这意味着PHP将正常运行,所有内容都会立即显示在消息中,但它不会转到“预期”的收件人。

这也意味着你可以检查标题(就像它们通常会出现的那样),以支持调试。

答案 3 :(得分:0)

我曾经有过这样的代码(有点伪代码):

define ('DEBUG', true);
function send_email($to, $subject, $body) {
    if (DEBUG) {
        file_put_contents('some_folder/' . $to . date('dmY-His') . '.html', $body);
    }else{
        // Actual code to send email
    }
}

但我同意其他人的意见,设置开发电子邮件帐户以接收这些电子邮件会更容易/更好。