IT/👨‍💻Computer Science

Python으로 E-Mail이 있는지 확인하는 코드

지식모아이령 2023. 3. 21. 12:33

Python으로 이메일이 존재하는지 확인하는 방법에 대해서 설명해보겠습니다. 이메일 유효성을 검사하는 코드입니다.

개발을 하다 AWS SES를 사용하였는데, 반송 여부율이 높다고하여 서비스 정지를 당해 고안한 코드입니다.

이메일 프로토콜을 사용하는 서비스에서 이메일 주소가 존재하는지 여부를 파악하는 것은 중요한 일 중 하나이며, Python을 이용하여 이를 확인하는 방법을 적어보겠습니다.

 

Python으로 이메일 유효성 확인 방법

import re
import dns.resolver


def is_valid_email(email):
    # 이메일 유효성 검사를 위한 정규식 패턴
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'

    # 이메일이 정규식 패턴과 일치하는지 확인
    if re.match(pattern, email):
        return True
    else:
        return False


def check_email_existence(email):
    # 이메일 주소에서 도메인 추출
    domain = email.split('@')[1]

    # DNS 쿼리를 사용하여 도메인의 MX 레코드를 가져옴
    try:
        dns.resolver.resolve(domain, 'MX')
        return True
    except dns.resolver.NXDOMAIN:
        return False


# 이메일 주소 입력 받기
email = input('Enter an email address: ')

# 이메일 주소의 유효성 및 존재 여부 확인
if is_valid_email(email):
    if check_email_existence(email):
        print(f'{email} is a valid email address and exists.')
    else:
        print(f'{email} is a valid email address but does not exist.')
else:
    print(f'{email} is not a valid email address.')