개발/database

mariadb 이메일 유효성 체크 함수

가시죠 2023. 8. 28. 10:01
반응형

웹에서 서버단에 이메일을 보낼때는 보통 SMTP 서버를 이용하여 이메일을 발송한다.

이때, SMTP서버에 따라 수신자 이메일 주소가 정확하지 않을 경우 멈춤 현상이 발생할 수 있다.

 

java에서 수신자 이메일 주소 유효성을 체크하는 방법도 있지만, 보통은 mariadb에서 수신자 목록을 조회하여 발송하는 경우가 많이 존재한다.

 

이때, mariadb에서 수신자 이메일 주소가 이메일 형식에 맞는지 체크하는 간단한 함수를 이용하면 편하게 업무를 진행 할 수 있다.

 

함수생성

CREATE OR REPLACE FUNCTION IS_EMAIL_VALID(EMAIL VARCHAR(255)) RETURNS BOOLEAN
BEGIN
    DECLARE IS_VALID BOOLEAN;
    
    SET IS_VALID = FALSE;
    
    IF EMAIL REGEXP '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$' THEN
        SET IS_VALID = TRUE;
    END IF;
    
    RETURN IS_VALID;
END

 

사용예제

SELECT 
	IS_EMAIL_VALID('hitomis@tistory.com') -- 올바른 이메일 주소
	, IS_EMAIL_VALID(NULL)  -- 잘못된 이메일 주소
	, IS_EMAIL_VALID('   ddd@daum.net   ')  -- 잘못된 이메일 주소
	, IS_EMAIL_VALID('3334')  -- 잘못된 이메일 주소
반응형