이메일 주소
형식 검증·정규화(한글 도메인 포함), 글 속에서 주소 뽑기, 흔한 도메인 오타 제안(navre.com → naver.com), 메일을 받는 도메인인지(MX) DNS over HTTPS 로 확인
npm install @duolabs-deux/unit-email-addr
직접 넣어 보기
주소 확인
가짜 규칙: example.com 은 null MX, nomx.* 는 A 만, parked.* 는 127.0.0.1, timeout.* 는 시간 초과
글에서 뽑기
sales@example.co.kr, help@nomx.example.kr
어댑터
| id | 종류 | 설명 |
|---|---|---|
doh | 실제 | DNS over HTTPS(JSON). 키가 필요 없다. 공급자는 cloudflare(기본)·google 또는 JSON 형식을 받는 주소 |
fake | 가짜 | 도메인 모양으로 결정적으로 답한다(nomx.·parked.·timeout. 등). README 의 규칙표 |
실패와 소비 앱이 할 일
| 종류 | 언제 | 할 일 |
|---|---|---|
invalid-input | 형식이 틀렸을 때. 메시지는 입력 칸 아래 그대로 보여도 되는 문장 | 입력 칸에서 바로 알린다. DNS 에 묻지 않는다 |
timeout | DNS 공급자가 제때 답하지 않았을 때 | 주소가 틀렸다는 뜻이 아니다. 「확인하지 못했다」로 보여 주고 보내기를 막지 않는다 |
upstream-down | 공급자에 닿지 못했거나 DNS 가 SERVFAIL·REFUSED 로 답했을 때 | timeout 과 같다. 다시 눌러 보게 한다 |
unexpected | 응답 모양을 해석하지 못했을 때 | 공급자 명세가 바뀌었을 수 있다. 로그를 남긴다 |
한도
- 사서함이 실제로 있는지는 확인하지 않는다. 답하는 것은 도메인이 메일을 받는지까지다
- 형식은 실용 규칙이다. 따옴표 로컬 파트, IP 리터럴 도메인, @ 앞의 비 ASCII(SMTPUTF8)는 받지 않는다
- 오타 제안은 흔한 개인 메일 도메인 기준이다. 회사 도메인의 오타는 잡지 못한다
- DNS 공급자에게는 도메인만 간다(@ 앞은 보내지 않는다)