我使用PHP的mail()函數從我的應用程序發送電子郵件。如果我通過SSH連接到服務器,是否有任何方法可以查看已發送的電子郵件?我需要電子郵件的實際內容,而不僅僅是行爲記錄。這可能是一個長期的,但任何幫助將不勝感激。是否可以檢索服務器上由php mail()發送的電子郵件?
編輯:我應該更清楚。這是針對過去已發送的郵件。我肯定會採取措施記錄或以其他方式報告未來發送的消息,但是有沒有辦法檢索已發送的消息?
我使用PHP的mail()函數從我的應用程序發送電子郵件。如果我通過SSH連接到服務器,是否有任何方法可以查看已發送的電子郵件?我需要電子郵件的實際內容,而不僅僅是行爲記錄。這可能是一個長期的,但任何幫助將不勝感激。是否可以檢索服務器上由php mail()發送的電子郵件?
編輯:我應該更清楚。這是針對過去已發送的郵件。我肯定會採取措施記錄或以其他方式報告未來發送的消息,但是有沒有辦法檢索已發送的消息?
郵件功能不追加到郵件服務器中的一個發送郵箱,所以我說沒有:因爲它是你無法找到通過PHP發送的電子郵件的正文。
但是,您可能會創建自己的郵件功能來記錄您發送的內容的某個位置。
在php.ini中還有兩行config,這讓我認爲你可以用正確的配置將它附加到現有的郵箱。
;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 =
如果您有權訪問該郵件的發送地址,那麼您可以使用PHP的IMAP功能。 http://www.php.net/manual/en/book.imap.php
我通常爲我的郵件函數添加一個參數,以表明我想將電子郵件的記錄和內容一起寫入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 ...
}
}
你可以添加你可以訪問到您的收件人在腳本 –
我想這是一個測試,爲什麼你不只是發送電子郵件給自己一會兒一個電子郵件地址。 – Endophage
你也可以給自己「密件抄送」。 – Shikiryu