이메일 검증의 원리.
작성 Argorant
Three checks stack on top of each other: syntax, DNS, and a live SMTP conversation. Each one proves something specific, and none of them proves everything. Here’s the whole picture.
첫 번째 레이어: 구문
The simplest check is the one that never touches a network. A syntax check asks whether a string is even shaped like an email address: one @ sign, a plausible local part, a domain with at least one dot, no illegal characters. It also catches the mechanical junk that creeps into any list: trailing whitespace, swapped characters from manual entry, “.con” instead of “.com”, and role patterns like noreply@ that you probably never want to mail.
구문이 증명하는 것: 주소 형식이 올바르다는 것. 증명하지 못하는 것: 도메인이 존재하는지, 메일을 받는지, 메일함이 실제인지. 2019년에 버려진 도메인의 완벽한 형식 주소도 구문 확인은 통과해요. 이 레이어는 도달 가능성 판정이 아니라 쓰레기를 거르는 필터로 보세요.
두 번째 레이어: DNS와 MX 레코드
The second layer asks the domain name system a simple question: if I wanted to deliver mail to this domain, where would I send it? A domain that receives email publishes MX (mail exchanger) records: the hostnames of the servers willing to accept its mail. If those records resolve, the domain participates in email at all. If they don’t, every address at that domain is dead, and you can reject the whole batch without ever contacting a server.
MX 조회는 빠르고, 부작용이 없고, 망한 회사, 오타 난 도메인, 주차된 웹사이트를 한 번에 걸러 내요. 하지만 한계도 분명해요: MX 레코드는 그 도메인이 어딘가에서 메일을 받는다는 것만 증명해요. 그 도메인의 j.smith@ 가 실제 사람이고 메일함이 살아 있는지는 알려 주지 않아요. 많은 업체가 여기서 멈추고 결과를 “검증됨”이라고 불러요. 그렇지 않아요.
세 번째 레이어: SMTP 확인
The only way to test a specific mailbox is to ask the server that owns it. An SMTP probe opens a real delivery conversation with the domain’s mail server (HELO, MAIL FROM, then RCPT TO with the exact address in question) and reads the server’s answer. A 250 response means the server is prepared to accept mail for that mailbox; a 550 means it isn’t. The probe then disconnects before any message is transmitted. Nothing lands in an inbox, and the mailbox owner never knows the check happened.
This is categorically stronger evidence than the first two layers because it interrogates the same system that will ultimately accept or bounce your campaign. It’s also the layer where honest vendors and dishonest ones diverge, because SMTP answers are not always clean, which brings us to catch-alls and greylisting. For exactly how Argorant runs this conversation, see how we verify.
캐치올 문제
Some domains are configured to accept mail for every address, real or invented. Probe jane.doe@ such a domain and the server says yes; probe xkcd9931@ and it says yes to that too. These are catch-all (or accept-all) domains, and they are common in mid-size companies whose IT teams route everything to a central filter. On a catch-all domain, a per-mailbox verdict is structurally impossible from the outside. Any vendor claiming a definitive “valid” on a catch-all address is reporting a guess with confident formatting.
The honest behavior is to flag catch-alls as their own category and let the buyer decide. Many catch-all addresses do deliver (the domain accepting everything doesn’t mean the person is fake), but they carry residual bounce risk that valid-status addresses don’t. Argorant treats them as opt-in at export: excluded by default, included only when you choose, charged like a valid contact when you do.
그레이리스팅과 “알 수 없음” 분류
Mail servers defend themselves. Greylisting is the classic tactic: the server answers a first-time connection with a temporary failure (“try again later”) on the theory that real mail servers retry and spam cannons don’t. Other servers throttle probes, answer ambiguously, or time out under load. A verification engine that probes such a server gets no usable verdict on the first pass.
좋은 엔진은 적절한 간격을 두고 평판 좋은 인프라에서 재시도해, 그레이리스팅 대부분을 해결해요. 남는 건 “알 수 없음” 분류로 들어가요. 알 수 없음은 보수적으로 다뤄야 해요: 유효로 전달하지 않고, 비용을 청구하지 않고, 정확도 통계를 부풀리려고 몰래 유효 집계에 섞지 않는 거예요. 어떤 검증 도구든 평가할 때는 결과의 몇 퍼센트가 알 수 없음으로 나오는지, 그 행은 어떻게 청구되는지 물어보세요. 그 답이 마케팅 페이지보다 더 많은 걸 알려 줘요. (그레이리스팅 같은 용어가 낯설다면 용어집 을 보세요.)
검증은 빨리 낡아요.
A verification verdict is a photograph, not a property. People change jobs, companies migrate mail systems, IT departments retire mailboxes. And the address that probed valid in January hard bounces in June. Industry estimates put B2B email decay around 2-3% per month, which compounds: a list verified a year ago can carry a quarter to a third dead weight, while still wearing its “verified” label.
그래서 레코드가 언제 검증됐는지가 판정 자체만큼 중요해요. Argorant의 답은 내보내는 순간 검증하는 거예요: 모든 주소는 파일에 들어가기 직전에 수신자의 메일 서버를 상대로 실시간 확인을 거치므로, 판정은 레코드가 추가된 시점이 아니라 메일함의 현재 상태를 반영해요.
내보내기 시점 검증이 수집 시점 검증보다 나아요
Here is the architectural decision that separates data providers. Most verify at collection: an address is checked when it enters the database, stamped “verified,” and sold under that stamp for as long as it sits in inventory (months, often years). The stamp was true once. Decay makes it progressively less true every week, and the buyer pays for the gap in bounces.
Verify-at-export inverts this: the probe runs at the moment you download, against the mail server as it exists today. The verdict you pay for is at most minutes old (or inside a disclosed freshness window). The practical difference shows up exactly where it hurts: your bounce rate, and therefore your sender reputation. If you take one heuristic from this guide: when a vendor says “verified,” ask when. A vendor that can’t answer per-row is describing the past.
경제성: 유효 결과에만 과금
Verification timing also determines what honest pricing can look like. If verification happens at export, the seller knows, before charging you, which rows are valid, which are invalid, which are catch-all, and which are unknown. There is no longer an excuse to bill them all the same. Argorant’s model follows directly: invalid and unknown rows are filtered out and cost zero credits; you pay per deliverable contact delivered (valid by default, with catch-all and risky as explicit opt-ins). Across 630.7M contacts in 202 countries, the economics stay simple because the risk of a stale verdict sits with the seller, where it belongs.
Compare that with paying per record regardless of outcome: every dead address is margin for the vendor and a bounce for you. When you model cost, ignore the per-credit sticker and compute cost per deliverable contact: pricing structures change ranking dramatically once you do. Plans start under $100/month, and the free tier is enough to test the verification behavior on a real segment before spending anything.
