2013-06-10 3 views
0

도메인을 포함하여 유효한 전자 메일이 있는지 확인할 수있는 방법을 알고 싶습니다. 예를 들어 PHP. 전자 메일 도메인이 있는지 확인하는 방법

,

같은 전자 우편 :

[email protected], [email protected]가 true를 돌려,

하지만 이메일은 같은 :

[email protected], [email protected]는 false를 반환해야합니다.

어떻게 할 수 있습니까?

전자 메일이 filter_var($email, FILTER_VALIDATE_EMAIL) 인 유효한 전자 메일인지 확인할 수 있지만 전자 메일을 보낼 수 있다고 보장 할 수는 없습니다 ([email protected]). 유효한 도메인이 있음을 어떻게 보장 할 수 있습니까? 그것이 성공의 여부를 경우

+0

'nslookup'이지만 메일을 제공 할 수 있다고 보장 할 수는 없습니다. 사이버 스쿼터에는 다른 도메인과 비슷한 도메인이 대부분 있습니다. – Brad

+0

당신은'@'을 폭발시킨 다음 도메인을 핑 (ping) 할 수 있습니다. –

+0

'email4 @ hotmai.com '을 유효한 이메일 주소로 사용할 수없는 이유는 무엇입니까? 이메일 주소가 유효한지 확인하려면 확인 이메일을 보내십시오. –

답변

0

한 가지 가능한 솔루션은 도메인에 연결하고 볼을 시도하는 것입니다

$domain@ 기호 다음 이메일 주소의 일부입니다
if(fopen("http://$domain")) 
{ 
    echo "success, valid domain"; 
} else { 
    echo "failure, not valid domain"; 
} 

. 정규식을 사용하여 얻을 수 있습니다.

+0

Thx, quinxorin. 왜 filter_var에 대해 (gethostbyname ('gmal.com'), FILTER_VALIDATE_IP); 이게 더 낫지 않습니까? 왜? 이것에 대한 답이 있습니까? – GarouDan

+1

도메인에서 실행중인 HTTP 서버가 있는지 여부는 전자 메일에 유효한지 여부와 관련이 없습니다. – Celada

+0

실제로 더 빠른 답변 일 것입니다. – IanPudney

3

당신은 허용 도메인 의 허용 목록을 허용 목록으로 만들 수 있습니다. 그러나 그것은 많은 유효한 서비스 인을 제외하지 않을 것입니다.

당신은 MX는 서비스가 다운 유지 보수 시간 동안 어떤 경우 을 파고 있지만, 수행 한 후 해당 포트에 도메인에 연결 에 시도 할 수 있을까?

가장 좋은 방법 이메일이 유효한 경우 인증 코드를 전송하는 것입니다 결정에 대한 사용자의 클릭이/이메일을받은 후 코드를 입력합니다.

1

도메인이 존재하는지 확인하려면 CURL을 사용할 수 있습니다.이 옵션은 매우 간단하지만 잘 작동합니다. 구현이 빠릅니다.

확인 잘 테스트 솔루션이 응답 : - https://stackoverflow.com/a/12547629/1146492

도메인의 이메일이 같은 것을 사용할 수 있습니다 얻으려면 : 빠른 검사에 대한

<?php 
function getDomainFromEmail($email) 
{ 
// Get the data after the @ sign 
$domain = substr(strrchr($email, "@"), 1); 

return $domain; 
} 

// Example 

$email = '[email protected]'; 

$domain = getDomainFromEmail($email); 

echo $domain; // yahoo.com 
?> 

그리고 사용하는 것보다 CURL.

관련 문제