실무 프로그램에서 이메일을 입력 받을 때, 이 이메일이 타당한지를 체크하는 일이 많다.
완벽하게 이메일을 체크하기 위해서는 프로그램에서 직접 이메일을 보내고 사용자가 이메일에 로그인한 후
확인 링크를 누르게 하는 것이다. 이러한 이메일 확인 절차와 별도로 사전에 미리 이메일 주소가
문법적으로 타당한지를 검사할 수 있는데, 이때 보통 Regular Expression (RegEx)를 사용한다.
이메일에 대한 공식적인 문법은
RFC 5322 에 정의되어
있는데, 이를 실용적으로 구현하면 아래와 같이 작성할 수 있다.
예제
public bool IsValidEmail(string email)
{
bool valid = Regex.IsMatch(email, @"[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?");
return valid;
}