如何配置PHP發送所有外發郵件到我自己的帳戶,以便我可以測試一個業務應用程序,而不實際發送郵件給不知情的企業,如「恭喜,你有一個新的帳戶。您將被收取$ xxx「?配置PHP將所有郵件發送到一個帳戶
回答
我發現這個網站:http://dummysmtp.com/。
我的服務器運行的是qmail的,所以我編輯的/ var/qmail的/控制/ smtproutes的,像這樣的內容:
:smtp.dummysmtp.com 用戶名密碼
當我用PHP郵件()發送一封簡單的郵件時,它工作正常,但後來我發現郵件仍然發送給其他人。我不得不爬進代碼的深處,發現這個:
/* Choose the mailer */
switch($this->Mailer) {
case 'sendmail':
$result = $this->SendmailSend($header, $body);
break;
case 'smtp':
$result = $this->SmtpSend($header, $body);
break;
case 'mail':
$result = $this->MailSend($header, $body);
break;
default:
$result = $this->MailSend($header, $body);
break;
//$this->SetError($this->Mailer . $this->Lang('mailer_not_supported'));
//$result = false;
//break;
}
所以我必須確保每個選項被配置爲將其郵件發送到dummysmtp.com。一旦我明白了,一切都奏效了。
與其配置PHP,一般的解決方案是站起來一個虛擬的SMTP服務器。
請參閱this question。
所以你已經寫了應用程序,它使用實時電子郵件地址,現在你想測試它?您是否使用郵件集中功能,或者是否有大量的郵件()調用代碼?對不起,但你將不得不改變每一個mail()調用。幫你自己一個忙,用你自己的功能替換它們,然後在那個地方處理測試/實時功能。
您可以將運行PHP的服務器上的所有端口25通信重定向到將所有郵件發送給您的郵件服務器/端口。
這是我知道的唯一的100%萬無一失的方法。
你指的是iptables嗎?這很有趣,但我認爲我找到了一個更優雅的解決方案,至少現在是這樣。 – 2010-07-27 18:37:56
@Isiden是的,使用iptables你可以這樣做:-)。我很高興你有一個解決方案,不管它是什麼。 – Borealid 2010-07-27 18:40:09
嗯,不完全。我發現郵件仍然出來給其他人。我試圖 須藤/ sbin目錄/ iptables的NAT -t輸出-A -m TCP --dport 25 -j DNAT --to目的地65.19.154.62 但得到 iptables的:未知的錯誤4294967295 的IP地址是到smtp.dummysmtp.com – 2010-07-27 22:07:08
您可以創建一個Google Apps帳戶(或使用虛擬服務器),創建一個全部收集的電子郵件帳戶並將其發送到域。你所要做的就是看看全部賬戶。
謝謝。這聽起來與我在下面描述的當我找到解決方案時類似。 如何創建虛擬服務器? – 2010-07-27 18:43:50
- 1. php配置發送郵件
- 2. PHP郵件功能不發送電子郵件到Gmail帳戶
- 3. WHM/cPanel - 禁用PHP爲一個帳戶發送郵件
- 4. 發送郵件到Gmail帳戶
- 5. 使用用戶配置的電子郵件帳戶發送郵件
- 6. 配置iisnode將所有請求發送到單個js文件
- 7. 配置郵件服務器發送郵件到PHP腳本
- 8. 使用PHP發送電子郵件到Gmail帳戶
- 9. iOS如何獲取所有已配置的郵件帳戶
- 10. Postfix收集所有收到的郵件在一個帳戶
- 11. 電子郵件發送從iPad沒有設置帳戶
- 12. PHP:從數據庫發送帶附件到電子郵件帳戶的郵件
- 13. 發送郵件給所有用戶
- 14. Javamail - 將郵件從本地主機發送到外部帳戶
- 15. 閱讀前景發送電子郵件時,多個帳戶配置
- 16. 沒有發送到Gmail帳戶的郵件
- 17. lua用Gmail帳戶發送郵件
- 18. Android從特定帳戶發送郵件
- 19. 發送電子郵件Yahoo帳戶
- 20. 使用Outlook帳戶發送郵件
- 21. 如何將所有數據通過電子郵件發送到一個郵箱?
- 22. SMTP並未發送所有電子郵件在Gmail郵箱企業帳戶
- 23. PAYPAL:發送訂單到兩個電子郵件帳戶
- 24. PHP羣發郵件不發送所有郵件
- 25. 將郵件從一個帳戶遷移到另一個帳戶:imapsync或offlineimap?
- 26. 將一個aws帳戶的配置複製到另一個帳戶
- 27. 從衆多的一個帳戶發送電子郵件在Django
- 28. Php mail()郵件發送到達gmail帳戶,但不是在普通的電子郵件帳戶
- 29. 不能發送郵件到Gmail郵箱帳戶使用javamail api
- 30. 使用ActionMailer發送電子郵件給使用帳戶的所有用戶
謝謝。我已經看過那個線程。所有的解決方案要麼是Windows,要麼是Java服務器。我在Linux上,我的MTA是qmail。我確實找到了更好的解決方案,現在我正在測試它。如果有效,我會針對我自己的問題發佈回覆。 – 2010-07-27 18:27:18
-1在我看來,這是一個可怕的想法。 – Fosco 2010-07-27 18:38:02
@Fosco,你能證明爲什麼這是一個可怕的想法嗎? @我認爲,建議使用Java運行的SMTP服務器,而不是您的應用程序。 – Dolph 2010-07-27 19:53:50