是否可以检索服务器上的php mail()发送的电子邮件?

时间:2011-02-11 16:43:30

标签: php email smtp

我使用PHP的mail()函数从我的应用程序发送电子邮件。如果我SSH到服务器,有没有办法看到已发送的电子邮件?我需要电子邮件的实际内容,而不仅仅是操作记录。这可能是一个远景,但任何帮助将不胜感激。

编辑:我应该更清楚。这适用于过去已发送的邮件。我肯定可以采取措施记录或以其他方式报告未来发送的消息,但有没有办法检索已发送的消息?

3 个答案:

答案 0 :(得分:2)

我通常在我的邮件功能中添加一个参数,表明我想将电子邮件的记录和内容写入HTML文件。这样,当我测试时,我可以浏览到临时文件夹,看看电子邮件的样子。这是一些模拟代码:

function send_email($to=false,$message=false,$from=false,$test=false) {

    ... do stuff to send email ...

    if ($test == true) {
        $out = 'Mail to: '.$to.'<br />From: '.$from.'<br />Time: '.date('m/d/Y h:i', time()).'<hr />'.$message; 

        // use a random string for a file name
        $fname = random_string(20); 

        .. write the $out var to a file named $fname ...
    }

}

答案 1 :(得分:1)

邮件功能不会将邮件附加到服务器中的已发送邮箱,因此我会拒绝:因为它无法找到通过PHP发送的电子邮件正文。

但是,您可以创建自己的邮件功能,以便记录您要发送的内容。

php.ini中还有2行配置,这让我觉得你可以将它附加到具有正确配置的现有邮箱。

;sendmail_path =
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

答案 2 :(得分:0)

如果您有权访问发送到的电子邮件地址,则可以使用PHP的IMAP功能。 http://www.php.net/manual/en/book.imap.php