This article describes the method of php verification login through smtp email. Share it with everyone for your reference, the details are as follows:
In order to unify accounts, the intranet systems all use email accounts to log in, so the following procedures are in place
/** * 通过邮件 验证登陆 * 这里要明白的是用户名是 带域名的:aaa@163.com */ function valideEmailLogin($user, $pass, $smtp_server= 'smtp.163.com', $port=25) { $handle = fsockopen($smtp_server, $port); if(!$handle) return false; $mes = fgets($handle); //echo $mes; if(!$mes){ fclose($handle); return false; } $status = explode(" ",$mes); if($status[0] != 220) { //链接服务器失败 fclose($handle); return false; } fwrite($handle, 'HELO mystore'."\r\n"); //表明身份,这里的mystore是随便写的 $mes = fgets($handle); //echo $mes; if(!$mes){ fclose($handle); return false; } $status = explode(" ",$mes); if($status[0] != 250) { //服务器HELO失败 fclose($handle); return false; } fwrite($handle, 'AUTH LOGIN'."\r\n"); $mes = fgets($handle); //echo $mes; if(!$mes){ fclose($handle); return false; } $status = explode(" ",$mes); if($status[0] != 334) { //请求验证登陆失败 fclose($handle); return false; } fwrite($handle,base64_encode($user)."\r\n"); $mes = fgets($handle); //echo $mes; if(!$mes){ fclose($handle); return false; } $status = explode(" ",$mes); if($status[0] != 334) { //验证用户名失败 fclose($handle); return false; } fputs($handle,base64_encode($pass)."\r\n"); $mes = fgets($handle); //echo $mes; if(!$mes){ fclose($handle); return false; } $status = explode(" ",$mes); fclose($handle); if($status[0] != 235) { //验证密码失败 return false; }else{ return true; } }
Readers who are interested in more PHP-related content can check out the special topics of this site: "Summary of PHP socket usage", "Summary of PHP network programming skills", "Complete of PHP array (Array) operation skills", "PHP mathematical operation skills" Summary", "Summary of PHP graphics and image operation skills", "Summary of PHP office document operation skills (including word, excel, access, ppt)", "php date and time usage summary", "php object-oriented programming introductory tutorial" , "php string (string) usage summary", "php mysql database operation introductory tutorial" and "php common database operation skills summary"
I hope this article will be helpful to everyone in PHP programming.