我需要检查用户在注册期间输入的电子邮件是否有效/真实,这意味着只要符合正确的电子邮件格式,他们就不能只输入他们想要的内容,我需要实际能够发送邮件到它
我也不想做电子邮件确认,但用户必须点击电子邮件中的链接进行注册。我只是想让它当场验证。
答案 0 :(得分:1)
您可以进行所需的所有验证,但最终唯一的方法是发送包含验证链接的电子邮件。
此外,由于您认为不存在大量有效和奇怪的电子邮件,因此通常需要进行相当宽松的验证。 Take a look here用于各种有趣的电子邮件。
答案 1 :(得分:0)
您需要对域的MX记录执行DNS查找,然后确保mx域是可联系的。我认为这是尽可能接近的。
您也可以考虑让第三方为您进行验证 - 例如实施Google OAuth作为您网站的注册方法。
答案 2 :(得分:0)
对于Laravel(你已经提到它作为问题的标签),我建议你使用这样一个Laravel的原生功能作为验证: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)