2015-01-27 3 views
1

검색을 시도했지만 온라인 지불 서비스가없고 코드를 테스트 할 코드가 없습니다 이 실제로 존재하므로은 하드 바운스를 방지 할 수 있습니다.하드 바운스 용 전자 메일 ID 유효성 확인

도메인 만 확인할 수있는 아래 코드를 참조하십시오. 도움이 필요합니다. 솔루션

가 온라인 서비스를 사용하여이

뭔가를 보여줍니다 PHP (선호), JAVA, .NET , 루디

public function check_domain($email) 
{ 
    if(! (bool) checkdnsrr(preg_replace('/^[^@][email protected]/', '', $email), 'MX')) 
    { 
     return FALSE; 
    } 

    return TRUE; 
} 

업데이트, 어떤 언어로 할 수있다

MX record found: mta6.am0.yahoodns.net (Priority 1) MX record found: mta5.am0.yahoodns.net (Priority 1) MX record found: mta7.am0.yahoodns.net (Priority 1) Connecting to mta6.am0.yahoodns.net Connected to mta6.am0.yahoodns.net Dialog with mta6.am0.yahoodns.net ok ------------------------------------------------------------ 220 mta1278.mail.bf1.yahoo.com ESMTP ready HELO verifyemailaddress.org 250 mta1278.mail.bf1.yahoo.com MAIL FROM: <[email protected]> 250 sender <[email protected]> ok RCPT TO: <[email protected]> 250 recipient <[email protected]> ok QUIT 221 mta1278.mail.bf1.yahoo.com ------------------------------------------------------------ Email address [email protected] accepted 

그들이하는 일 정확하게, 이메일을 보내고 ??

답변

4

최소한 이메일 주소가 존재하는지 확인하려면 수신 서버에 SMTP 연결을 열어야합니다. 전자 메일은 실제로 전송할 필요가 없습니다. 전자 메일이없는 경우 대부분의 전자 메일 서버는 RCPT TO 명령에 오류로 응답합니다. 이 시점에서 실제로는 전자 메일을 보내지 않고 QUIT 명령을 보낼 수 있습니다. 일부 이메일 서버는 주소를 테스트하기 위해 VRFY 명령을 발행 할 수있게하지만 널리 지원되지는 않습니다.

이메일 확인 서비스 작동 방식입니다. 그들은 이러한 악수를 수행 한 다음 결과를 저장합니다. 그것이 당신이 제공 한 예에서 일어나는 일입니다. 클라이언트는 뒤에 QUIT입니다. 이메일 주소가 유효 구조를 가지고 테스트 -

  1. 대부분의 기본 :

    는 몇 가지 다른 옵션이 있습니다. 이 페이지는 다음을 확인하는 하나의 정규 표현식을 가지고 있습니다. - http://www.regular-expressions.info/email.html

  2. 고급 기능 - 하드 반송을 막으려는 목적에 따라 다릅니다. 예를 들어, 예를 들어, 사용자 이름은 최소 X 자 길이이고 도메인 Y char은 길지만 포기해야합니다. 단일 문자 사용자 이름은 유효합니다. 나는 도메인 이름을위한 최소한에 관하여 확실하지 않다. 그리고 누군가가 그 규칙을 이기기를 원한다면 그것은 사소한 일이다; 그래서 아무 요점.

  3. 새 도메인을 만날 때 수신 SMTP 서버에 연결하고 SMTP 핸드 셰이크를 시작하십시오. RCPT TO 명령에 대한 응답을 확인하십시오.

  4. 킥 박스와 같은 이메일 확인 서비스를 이용하십시오. 이러한 서비스는 많은 이메일 주소를 보게되며 대기 데이터 또는 핸드 셰이크를 수행하지 않고도 관련 데이터를 캐시하고 준비 할 수 있습니다.

  5. 이메일을 보내고 사용자에게 링크를 클릭하도록 요청하는 것만으로는 안됩니다. 그것이 바로 많은 서비스가 시작한 일입니다. 열심히 튀는 잡초. 또한 가입자가 자신이 소유 한 이메일 주소를 제공하고 있음을 보장합니다.

+0

이메일 주소가 존재하는지 확인하는 바보 같은 방법은 없지만 [varify-email] (http://verify-email.org/)과 같은 서비스는 매우 정확합니다. ? – Saqueib

+0

@Saqueib http://verify-email.org/faq.html에서 어떻게 작동하는지 설명하고'일부 도메인의 경우 메일 서버가 메일을 보내지 않았기 때문에 주소의 유무를 확인할 수 없습니다. 협조해라. " –

+0

@RDay 그렇게 불가능하다 !!! 최대 우리는 regex를 사용하여 이메일을'validate' 할 수 있고 도메인이 존재하는지 확인하고'user @ dmain.com '도 존재한다고기도합니다 :) 클라이언트가 데이터베이스를 가지고있는 경우 – Saqueib