2021-09-20 395 View 공개 |
주어진 PHP 함수 domain_exists는 특정 이메일 도메인에 MX (메일 교환) 레코드가 있는지 확인합니다. MX 레코드는 DNS (도메인 이름 시스템)에서 이메일을 라우팅하는 데 사용됩니다. 이메일 도메인에 MX 레코드가 있으면, 해당 도메인이 이메일을 받을 수 있다는 좋은 징후입니다.
function domain_exists ( $email , $record = 'MX' ) { list ( $user , $domain ) = split ( '@' , $email ) ; return checkdnsrr ( $domain , $record ) ; } if(domain_exists('test@gmail.com')) { echo('This MX records exists; I will accept this email as valid.'); } else { echo('No MX record exists; Invalid email.'); } ?>
◼︎ 파라미터: $email : 확인하려는 이메일 주소. $record : 확인하려는 DNS 레코드 유형. 기본적으로 'MX' (메일 교환)로 설정됩니다. ◼︎ 기능 함수는 split 함수를 사용하여 이메일 주소를 사용자 부분과 도메인 부분으로 분리합니다. 예를 들어 'test@gmail.com'의 경우 'test'와 'gmail.com'을 분리합니다. checkdnsrr 함수는 그 다음 해당 도메인의 DNS 레코드를 지정된 레코드 유형 ('MX'가 기본)에 대해 확인합니다. 해당 도메인에 지정된 DNS 레코드가 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
함수는 'test@gmail.com'에 MX 레코드가 있는지 확인하기 위한 if 문에서 사용됩니다. 도메인에 MX 레코드가 있으면 해당 이메일이 유효하다는 메시지를 출력합니다. MX 레코드가 없으면 이메일이 유효하지 않다는 메시지를 출력합니다.
split 함수는 PHP 5.3.0에서 사용 중지되었으며 PHP 7에서 제거되었습니다. 대신 explode 함수를 사용하는 것이 좋습니다. MX 레코드의 존재를 확인하는 것은 좋은 초기 확인 방법이지만, 주어진 사용자 이름(예: 'test@gmail.com'의 'test')에 대한 메일박스가 실제로 존재하는지는 보장하지 않습니다. 그것을 확인하려면 일반적으로 이메일을 보내 보고 반송되는지 확인하거나 사용자가 검증 과정을 통해 확인해야 합니다.