짧은 답변으로 바로 넘어가서 장황한 설명은 그 후에 다루도록 하겠습니다.
간단히 말해서 ‘아니요’입니다.
개발자와 악마 옹호자들이 정규식 이메일 유효성 검사에 대한 우리의 무뚝뚝한 거부에 의문을 제기하는 소리가 들리면서, 그렇다면 왜 정규식 이메일 유효성 검사가 존재하는지에 대한 의문이 더 커지는 것 같습니다.
이메일 정규식이 유용한 도구라는 사실을 부인하지 않을 것이며, 사용자가 양식이나 기타 실행 매체에 오래된 텍스트를 추가하는 것을 방지할 수 있는 영리한 도구임에는 틀림없습니다. 한때 이메일 정규식은 이메일 데이터를 수집하는 방식에서 중요한 역할을 했습니다.
하지만 지금은? 현재 기술 및 표준에 부합할까요?
이제 그 시대가 끝났다고 생각합니다.
이메일 마케팅, 이탈률, 전달률 점수, 그리고 높은 지표와 전환율을 유지하는 데 필요한 모든 것을 망치지 않는 깨끗한 이메일 주소를 확보하고 싶다면 정규식을 사용해서는 안 됩니다.
이메일 유효성 검사 정규식이란 무엇인가요?
정규식은 정규 표현식의 줄임말로, 다양한 코딩 언어에서 사용되는 용어입니다. 정규식 또는 정규식은 다른 문자열에서 발견되는 패턴과 일치하도록 설계된 인코딩된 텍스트 문자열을 말합니다.
사용자가 입력한 정보가 올바른지 확인하기 위해 특정 유형의 패턴에 문자열을 일치시켜야 할 때 매우 유용하게 사용할 수 있습니다. 전화번호, 우편 번호, 날짜, 그리고 우리가 가장 중요하게 생각하는 이메일 주소도 고려할 수 있습니다.
간단한 패턴을 사용하면 정확한 문자열을 일련의 규칙에 일치시킬 수 있습니다. 단순한 패턴이 복잡해지면 정규식은 효율성이 떨어지고 잘못된 결과를 제공할 가능성이 높아집니다.
지금까지는 괜찮아 보이는데, 정규식 이메일 유효성 검사의 문제점은 무엇일까요?
정규식만큼 멋진 도구도 없지만, 필요한 모든 검사를 처리하지는 못합니다. 다음을 살펴보세요:
[email protected]
[email protected]
[email protected]
[email protected]
위의 항목 중 하나라도 이메일 목록에 추가할 항목이 발견되면 바로 플래그를 지정해야 합니다(또는 지정해야 합니다!). 이 중 어느 하나라도 여러분의 제품 및 서비스에 관심을 보이는 실제 사람들이 보낸 유효한 항목이라고 믿지 못할 것입니다.
하지만 정규식 이메일 유효성 검사는 가능합니다. 모든 이메일을 통과시킬 수 있습니다.
왜 그럴까요? 명백한 가짜 주소는 여전히 규칙이 확인하도록 설정한 패턴을 따르기 때문입니다.
지금은 그렇게 똑똑해 보이지 않죠?
너무 제한적입니다.
앞의 예는 명백히 잘못된 것처럼 보이지만, 일부 이메일 형식에는 우리가 익숙한 것보다 훨씬 더 많은 특수 문자가 포함되어 있습니다.
가장 간단한 양식으로 이메일 주소는 다음 형식을 따릅니다:
사용자 이름@도메인
이메일 주소는 세 가지 섹션으로 구성됩니다:
- 로컬 부분 – 일반적으로 사용자 이름 또는 직무 역할
- 문자
- 유효한 TLD(최상위 도메인)를 포함한 도메인
코드에서 찾아야 하는 것이 그것뿐이라면 일반적인 자바스크립트 정규식 검사로 많은 불량 연락처가 목록에 포함되는 것을 방지할 수 있습니다.
일반적으로 이메일 주소에는 다음 문자가 포함될 수 있습니다:
- 숫자: 숫자: 0~9
- 소문자 및 대문자: a부터 z까지, A부터 Z까지
- 추가 특수 문자: !#$%&’*+-/=?^_`{|}~
- 점 문자 [..]: 단, 첫 번째 또는 마지막 문자로 사용하거나 연속적으로 사용할 수 없습니다.
누군가 이메일 목록에 이러한 특수 문자를 하나 또는 여러 개 포함해서 신청하는 경우, 대부분의 사람들은 뭔가 잘못된 것이 아닌지 의문을 제기할 것이고, 이는 잘못된 생각일 것입니다.
정규식은 구문 이외의 다른 것은 확인하지 않습니다.
개발자는 양식을 통해 유효해 보이는 주소를 얻는 것에만 신경을 쓸 수 있지만, 저희는 그렇지 않습니다. 우리는 알아야 합니다:
- 도메인이 존재하나요?
- 도메인에 메일 서버가 있음을 증명하는 MX 레코드가 있나요?
- 이메일 주소에 사용 가능한 이메일 계정이 있나요?
이러한 질문 중 ‘아니오’로 판정된 항목은 마케터로서도 ‘아니오’라고 단호하게 말할 수 있습니다. 정규식은 이러한 사항을 확인하지 않으며, 전용 이메일 유효성 검사 도구만이 이러한 위험 신호를 포착합니다.
임시 및 일회용 주소를 발견하지 못합니다.
이메일 마케터로서 우리가 잘 알고 있는 또 다른 사실은 많은 사용자가 오퍼, 프로모션 또는 기타 상황을 이용하기 위해 가짜 임시 계정을 설정한다는 것입니다. 이는 기존 이메일 계정에 복잡함을 더하거나 원치 않는 자신에 대한 정보를 제공하는 것을 피할 수 있는 쉬운 방법입니다.
임시 또는 일회용 이메일 주소는 일회성 솔루션으로 쉽게 설정할 수 있습니다. 이러한 주소는 설정 후 10분 또는 15분 이내에 사라지는 경우가 많기 때문에 목적에 매우 적합합니다.
정규식은 이를 확인하지 않습니다. 임시 및 일회용 이메일 주소는 모든 정규식 유효성 검사 테스트를 통과합니다.
이메일 정규식 자바스크립트를 어떻게 설정하나요?
손재주가 없는 개발자에게는 이 주제에 대한 기본적인 이해가 필요하지 않겠지만, 코딩 경험이 어느 정도 있는 분이라면 다음과 같은 모습일 것입니다:
함수 ValidateEmail(입력 텍스트)
{
var mailformat = [a-z0-9!#$%&’*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&’*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
if(inputText.value.match(mailformat))
{
alert(“이 이메일 주소는 유효한 이메일 주소가 아닙니다”);
거짓을 반환합니다;
}
}
모든 무거운 작업을 수행하는 부분은 변수 메일포맷 줄에 있습니다. 긴 코드 줄의 실행과 문자는 허용되는 항목과 허용되지 않는 항목을 정의합니다.
간단한 것들은 알아차릴 수 있습니다: A , A , 를 클릭한 다음 첫 번째 로컬 섹션의 특수 문자를 입력합니다. 그리고 +@ 를 입력한 다음 로컬 및 도메인 구분 기호를 지정합니다. 뒤에 @를 입력하면 도메인 섹션에 허용되는 항목에 대한 또 다른 지침이 표시됩니다.
정규식 유효성 검사기를 구현하는 데 필요한 사항에 대해 훨씬 더 깊이 있는 인사이트를 얻고 싶으시다면 abstract로 이동하세요. 필요한 사항을 정확하게 알려주는 훌륭한 가이드가 있으며 모든 종류의 API 추가 및 포함에 관한 전문가입니다.
할 만한 가치가 있는 일이라면 잘 해낼 가치가 있으므로 가능한 최선의 방법으로 목록을 검증하세요.
이메일 목록을 프리미엄 상태로 유지하는 유일한 방법은 다음과 같은 전용 이메일 유효성 검사 도구를 사용하는 것입니다. 바운서 .
정규식 유효성 검사는 가짜 이메일 주소를 이메일 목록에 허용하고 유효한 이메일 주소를 차단하는 원인이 될 수 있습니다. 온라인 양식이나 데이터 수집 방법에 인증 방법을 추가할 때는 보다 강력한 다른 형태의 유효성 검사를 사용하는 것이 좋습니다.
궁극적으로 Bouncer와 같은 플랫폼을 통해 이메일 목록을 운영하는 것이 목록을 깨끗하고 건강하게 유지하고, 반송률을 낮추며, 전달률을 높이고, 발신자 점수를 최상의 상태로 유지하는 가장 좋은 방법입니다.
이메일 메시지 정규식 FAQ
이메일 유효성 검사를 위한 간단한 정규식이란 무엇인가요?
이메일 유효성 검사를 위한 간단한 정규식(정규식)은 이메일 주소의 검색 패턴을 정의하는 문자 시퀀스입니다. 문자열이 이메일 주소의 표준 형식과 일치하는지 확인하는 데 사용할 수 있습니다. 그러나 단순 정규식은 잘못된 이메일 주소를 모두 잡아내지 못할 수 있으며 일부 비표준 이메일 형식은 통과할 수 있다는 점에 유의해야 합니다.
이메일 정규식은 잘못된 이메일 주소를 필터링하는 데 어떻게 도움이 되나요?
이메일 정규식은 입력 문자열(사용자가 입력한 이메일 주소)을 특정 형식과 일치시키는 데 사용됩니다. 이메일 주소가 이 형식과 일치하지 않으면 유효하지 않은 것으로 간주됩니다. 이를 통해 오타를 방지하고 데이터 일관성을 보장하며 특정 유형의 인젝션 공격으로부터 보호할 수 있습니다.
이메일 정규식의 맥락에서 공백 문자는 무엇인가요?
이메일 정규식에서 공백 문자는 공백, 탭 또는 줄 바꿈과 같이 빈 공간을 나타내는 데 사용되는 모든 문자를 말합니다. 이메일 주소의 경우 일반적으로 공백 문자는 허용되지 않으며, 공백 문자가 있으면 이메일 주소가 유효하지 않게 됩니다.
복잡한 이메일 정규식이란 무엇인가요?
복잡한 이메일 정규식은 이메일 유효성 검사에 사용되는 보다 상세하고 정확한 정규식입니다. 도메인 이름, 라틴 문자가 아닌 문자, 특정 문자가 표시될 수 있는 위치에 대한 특정 규칙 등 이메일 주소의 다양한 측면을 설명할 수 있습니다. 보다 철저한 유효성 검사를 제공하지만 구현 및 유지 관리가 더 까다로울 수 있습니다.
이메일 정규식은 라틴 문자가 아닌 문자와 유니코드를 어떻게 처리하나요?
이메일 정규식에서 라틴 문자가 아닌 문자와 유니코드를 처리하는 것은 복잡할 수 있습니다. 일부 이메일 시스템에서는 유니코드 또는 비라틴어 이메일 주소를 허용하지만 보편적으로 지원되지는 않습니다. 복잡한 이메일 정규식에는 라틴 이외의 문자와 일치하는 문자 클래스가 포함될 수 있지만, 사용 중인 이메일 시스템의 특정 요구 사항과 제약 조건을 이해하는 것이 중요합니다.
이메일 정규식에서 문자 클래스의 역할은 무엇인가요?
이메일 정규식의 문자 클래스는 입력 문자열의 모든 단일 문자와 일치할 수 있는 문자 집합을 정의합니다. 예를 들어, 문자 클래스 [a-z]는 모든 영문 소문자와 일치합니다. 문자 클래스는 이메일 주소의 여러 부분에 유효한 문자를 지정하는 데 사용할 수 있습니다.
이메일 유효성 검사를 위한 이메일 정규식의 한계는 무엇인가요?
이메일 정규식은 이메일 주소의 일반적인 오류를 많이 잡아낼 수 있지만, 완전한 유효성 검사 방법은 아닙니다. 일부 유효하지 않은 주소는 여전히 정규식 검사를 통과할 수 있으며, 일부 유효한 주소는 특히 덜 일반적인 형식이나 문자를 사용하는 경우 검사에 실패할 수 있습니다. 이메일 유효성 검사를 철저히 하려면 이메일 유효성 검사 서비스를 사용하거나 입력한 주소로 확인 이메일을 보내는 것이 좋습니다.