php 源代码 检测邮件地址是否真实可用

<?php

function check_mail($useremail,$mod){

	$smtp = explode("@",$useremail);
	$username = $smtp[0];
	$smtp = 'smtp.'.$smtp[1];
	$flag = "";
	$message="";
	$message .= "开始连接服务器<br>";
	$link = @fsockopen($smtp,25);
	if ($link){
		set_socket_blocking($link,true);
		$lastmessage=fgets($link,512);

		if (!ereg("^220",$lastmessage)){
			$message .= "与服务器连接失败" . $lastmessage . "<br>";
		}else{
			$message .= "与服务器连接成功,服务器就绪:" . $lastmessage . "<br>";
			
			fputs($link,"HELO phpsetmail"."\r\n");
			$lastmessage=fgets($link,2000);
			if (ereg("^250",$lastmessage)){
				$message .= "与服务器HELO成功:" .$lastmessage. "<br>";
			}
			else{
				$message .= "与服务器HELO失败:" .$lastmessage. "<br>";
			}

			fputs($link,"AUTH LOGIN"."\r\n");
			$lastmessage=fgets($link,2000);
			if (ereg("^334",$lastmessage)){
				$message .= "请求与服务器进行用户验证成功:" .$lastmessage. "<br>";
			}
			else{
				$message .= "请求与服务器进行用户验证失败:" .$lastmessage. "<br>";
			} 

			fputs($link,base64_encode($username)."\r\n");
			$lastmessage=fgets($link,2000);
			if (ereg("^334",$lastmessage)){
				$message .= "与服务器用户验证成功:" .$lastmessage. "<br>";
				$flag = 1;
			}else{
				$message .= "与服务器用户验证失败:" .$lastmessage. "<br>";
				$flag = -2;
			}
			fputs($link,"HELP\r\n");
			$lastmessage=fgets($link,2000);
			$message .= "HELP命令执行情况:".$lastmessage. "<br>";

		}

		fclose($link);	
		$message .= "关闭服务器连接";
	}
	else{
		$message = $useremail.$smtp."服务器连接失败";
		$flag = -1;
	}
	
	$return = array("msg"=>$message,"flag"=>$flag);
	
	if($mod==1){
		if($flag == 1){
			return  true;
		}else{
			return  false;
		} 
	}else{
		return  $return;
	}
}

//调用示例  $re = check_mail("[email protected]");

?>

你可能感兴趣的:(php 源代码 检测邮件地址是否真实可用)