Click or drag to resize

메일 주소 유효성 확인

회원 가입 양식 등에서 입력 받는 이메일 주소가 올바른지 여부를 검사할 수 있는 기능을 제공합니다. IsValidEmail 메서드를 사용하면 간단하게 메일 주소가 올바른지 여부를 확인할 수 있습니다.

3 단계 검사

IsValidEmail 메서드는 3 단계로 진행되는 검사 방법을 제공합니다. 1 단계는 단순히 입력한 메일 주소가 표준 문법에 맞는지 여부를 검사합니다. 내부적으로 정규식을 사용해 검사하므로 추가적인 네트워크 트래픽 발생이 없습니다. 대신 입력한 메일 주소가 표준에만 부합되면 모두 True를 반환하므로 실제 수신가능한 메일 주소인지 여부를 확인할 수 없습니다.

2 단계 검사는 검사할 메일 주소에서 도메인 부분을 분리해 해당 도메인이 MX 레코드가 설정되어 있는지 여부를 추가로 검사합니다. 해당 도메인이 올바른 메일 서버를 운영하고 있다면 DNS에서 MX 레코드 조회시 올바른 IP 주소가 반환됩니다. 메일 서버가 없는 도메인이라면 MX 레코드가 존재하지 않으므로 False를 반환하게 됩니다. 1 단계 검사 후 DNS 서버에 MX 레코드를 조회하므로 추가적인 네트워크 트래픽이 발생합니다.

마지막 3 단계 검사는 DNS 검사 후 실제 수신할 메일 서버에 해당 계정이 존재하는지 여부를 물어보는 SMTP 트랜잭션을 수행합니다. 수신 서버에 해당 메일 계정이 존재하지 않는다면 False가 반환되고 SmtpError 파라미터에는 상세 SMTP 오류 정보가 함께 반환됩니다. 3 단계 검사까지 진행할 경우 정확한 메일 주소를 얻을 수 있지만 DNS 조회에 이어 SMTP 트랜잭션을 수행해야하므로 일정량의 네트워크 트래픽이 발생되며 응답을 기다리는 지연 시간이 발생합니다. 아래 예제는 3 단계 검사를 실행하는 예제입니다.

ASP
Dim smtp, result, valid
Set smtp = Server.CreateObject("TABSUpload4.Smtp")
smtp.FromAddress = "test@tabslab.com"
valid = smtp.IsValidEmail("help@hotmail.com", 3, result)
If valid = False And result.Type <> 0 Then
    Response.Write result.Type & ", " & result.Code & ", " & result.Description
End If
Note Note

3 단계 검사는 실제 목적지 메일 서버에 연결해서 SMTP 명령을 수행하기 때문에 메일 서버에 문제가 있거나 네트워크가 느린 경우 많은 대기 시간이 발생해 웹 응답이 느려질 수 있습니다. TimeoutSec 값을 줄여 응답 속도를 향상시키는 보다 나은 웹 페이지 응답성을 제공합니다.