2012-02-09 71 views
0

我正在使用php5。php將電子郵件重定向到文件

是否有一些設置或簡單的php.ini指令將所有電子郵件重定向到一個文件夾?

我想在開發機器上將系統生成的所有電子郵件都發送到實際的接收器,但放在一個文件夾中。

謝謝。

回答

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 
    } 
} 

但我同意其他人,更容易/更好地建立一個開發電子郵件帳戶收到此類郵件。

+0

我使用這個解決方案,因爲服務器不僅發送一封電子郵件地址(用戶可以註冊,...) – memical 2012-02-09 23:35:26

0

我不認爲你可以做這樣的事情。郵件由郵件服務器發送,因此它必須是您的郵件服務器,將它們寫入文件而不是發送它們。

爲什麼不簡單地將它發送到一個特殊的開發電子郵件?

樣品:

define('DEBUG', true); 

if(DEBUG) 
{ 
    // Override recipient 
    $recipient = '[email protected]'; 
} 

// Send mail... 
+0

我想我會用這個解決方案去。 – memical 2012-02-09 23:34:06

0

據我所知的PHP本身沒有設置。但是,如果你的開發服務器上使用後綴,這裏是一個食譜我編造了所有出站電子郵件重定向到一個單一的(本地)地址:

/etc/postfix/main.cf中:(添加此現有的文件,並沒有取代一切)

virtual_alias_maps = regexp:/etc/postfix/virtual 

的/ etc /後綴/虛擬

/.*/ [email protected] 
0

你可以配置你的郵件服務器接受SMTP郵件爲正常,但要它無法將它們轉發到其他郵件服務器。如果您的郵件服務器支持它,請將所有郵件重定向到郵局主管帳戶或您選擇的任何其他地址。

這意味着PHP將像平常一樣運行,所有內容都會直接與消息一起運行,但它不會傳遞給「預期」收件人。

這也意味着您可以檢查標題(就像它們通常會出現的一樣),以支持調試。

0

有很多方法可以做到這一點。基本上,您需要在php.ini中定義sendmail命令,以指向將本地保存郵件的程序或腳本。

一種解決方案是這樣的: Catch emails with php script

另一個是這樣的:

Mail catcher

相關問題