이메일 체크 함수 (문법검사 & 실제존재확인)
페이지 정보
작성자 서방님 댓글 0건 조회 101회 작성일 13-07-08 17:59본문
출처 : http://phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=933&page=582
<HTML>
<HEAD>
<TITLE></TITLE>
<META http-equiv="Content-Type" content="text/html; charset=euc-kr">
</HEAD>
<BODY bgcolor="#FFFFFF">
<FORM action="<? echo $PHP_SELF ?>">
<DIV align="center">이메일주소:
<INPUT name="Email" type="text">
<INPUT type="submit" name="Submit" value=" 확인 ">
</DIV>
</FORM>
<PRE>
<?
function is_email($strEmail, &$strError) {
// check email string
if (ereg("^[^@ ]+@([a-zA-Z0-9-]+.)+([a-zA-Z0-9-]{2}|net|com|gov|mil|org|edu|int)$", $strEmail)) {
$email = explode("@", $strEmail);
$id = $email[0];
$domain = $email[1];
} else {
$strError = "email address is not correct";
return FALSE;
}
// get all mx-host name
getmxrr($domain, $mxhosts);
if (!$mxhosts) {
$strError = "can not found MX-hostname for $domain";
return FALSE;
}
// connect first mx-host
$fp = fsockopen ($mxhosts[0], 25, &$errno, &$errstr, 10);
if (!$fp) {
$strError = $errstr;
return FALSE;
} else {
// CONNECT message
$buffer = fgets ($fp, 65536);
// HELO command
$buffer = "HELO $domain ";
fputs ($fp, $buffer);
$buffer = fgets ($fp, 65536);
if (!ereg("^250", $buffer)) {
fclose ($fp);
$strError = $buffer;
return FALSE;
}
// MAIL command
$buffer = "MAIL FROM:webmaster@greetings.co.kr ";
fputs ($fp, $buffer);
$buffer = fgets ($fp, 65536);
if (!ereg("^250", $buffer)) {
fclose ($fp);
$strError = $buffer;
return FALSE;
}
// RCPT command
$buffer = "RCPT TO:$id@$domain ";
fputs ($fp, $buffer);
$buffer = fgets ($fp, 65536); //RCPT result
if (!ereg("^250", $buffer)) {
fclose ($fp);
$strError = $buffer;
return FALSE;
}
// Oh! it's correct email-address
fclose ($fp);
return TRUE;
}
}// End function is_email()
// 사용방법 예:###########################
if (is_email($Email, &$err)) {
echo "올바른 이메일입니다. ";
} else {
echo "잘못된 이메일입니다. ";
echo "<FONT color=red>$err</FONT>";
}
?>
</PRE>
</BODY>
</HTML>
댓글목록
등록된 댓글이 없습니다.