2011-04-15 50 views
3

每當我在一個向用戶發送電子郵件的網站上進行開發時,我必須記得註釋掉mail()代碼我不會無意中觸發通知電子郵件,同時擺弄和調試,這是一種痛苦,偶爾我會忘記併發送電子郵件給別人,當我不想要的時候。是否有可能只允許PHP郵件發送到某個電子郵件地址的php.ini級別

有沒有辦法在php.ini級別(或其他一些低級別)的郵件地址中強制實施白名單,mail()也可以發送?

其他人是否有巧妙的方法來避免這個問題?

+0

這是生產服務器還是某種本地環境? – 2011-04-15 16:40:09

+0

本地開發。環境。 – 2011-04-17 07:43:03

回答

3

我會在SMTP級別執行此操作。配置它並讓PHP使用僅用於開發的特定SMTP服務器。

+0

感謝Brad和Piskvor,聽起來像在SMTP級別過濾是最好的選擇 – 2011-04-17 07:44:36

0

爲什麼沒有爲您的網站設置maintenance mode

if ($maintenance_mode) { 
    // only send mail to admin 
} else { 
    // send mail to users 
} 
0

沒有在這一水平,但也有不同的解決方法:

  • 您的發送SMTP服務器設置爲一個不轉發郵件(即禁止在SMTP服務器轉發,這可能是最簡單的,因爲你不必在你的代碼中的任何地方處理過濾)
  • 使用像phpMailer這樣的包裝,並擴展它的send()方法,在那裏做過濾(很有用,因爲你可以改變實際的接收者爲例如[email protected],所以你仍然可以看到郵件正在外出,但重定向到你自己)
相關問題