我需要檢查用戶在註冊時輸入的電子郵件是否有效/真實,這意味着只要符合正確的電子郵件格式,他們就不能輸入任何他們想要的內容,我需要真正能夠發送郵件給它。Laravel 4:在註冊期間檢查電子郵件是否真實
我也不想做電子郵件確認,但是,用戶必須單擊電子郵件中的鏈接才能註冊。我只想讓它在現場進行驗證。
我需要檢查用戶在註冊時輸入的電子郵件是否有效/真實,這意味着只要符合正確的電子郵件格式,他們就不能輸入任何他們想要的內容,我需要真正能夠發送郵件給它。Laravel 4:在註冊期間檢查電子郵件是否真實
我也不想做電子郵件確認,但是,用戶必須單擊電子郵件中的鏈接才能註冊。我只想讓它在現場進行驗證。
您需要在域名的MX記錄上進行DNS查找,然後確保mx域名可聯繫。我認爲這要儘可能地接近你。
您可能還會考慮讓第三方爲您進行驗證 - 例如,實施Google OAuth作爲您網站的註冊方法。
除了使用帶寬和CPU之外,這沒有任何好處 – 2013-11-26 03:32:19
不正確。它會捕獲那些沒有配置郵件的人輸入亂碼域名和域名。達到一點,我會同意。 – Malcolm
您可以進行所有需要的驗證,但最終最好的唯一方法是發送一封包含驗證鏈接的電子郵件。
另外,由於有大量有效和奇怪的電子郵件,你會認爲不是,這個想法通常是有相當寬鬆的驗證。 Take a look here各種有趣的電子郵件。
對於Laravel(你已經提到它是問題的標籤),我建議你使用Laravel的原生特性作爲Validation:Laravel 3/Laravel 4。 下面是我如何使用它在POST控制器:
// Rules for form validation
$rules = array(
'email' => array('required', 'email', 'unique:users,email'), // Email is required and should satisfy E-mail format and it should be unique for table users.
);
// Form validation
$validation = Validator::make(Input::all(), $rules);
if($validation->fails()) {
// Flash validator with input values and errors to some controller
Former::withErrors($validation);
return Redirect::to_action('some.controller')
->with_input()
->with_errors($validation);
}
}
一般來說PHP的使用情況下,你可以使用PHP的像這樣的原生功能檢查:
filter_var($email, FILTER_VALIDATE_EMAIL)
這樣做的格式驗證,這很好,但無法驗證電子郵件是否是真實的。 –
我認爲你能做的最好的,是驗證域是否存在,即使它不會爲所有工作 – bumperbox
要知道它是有效的唯一方法是你不想這樣做,所以..? – 2013-11-26 03:21:07
您可以驗證域是否存在,連接到SMTP服務器,甚至嘗試向用戶發送郵件。正確配置的SMTP服務器不會告訴您用戶是否存在,它將接受所有郵件並將郵件丟棄給不存在的用戶。在用戶干預之外沒有真正的驗證方法。 – Snowburnt