[{"data":1,"prerenderedAt":116},["ShallowReactive",2],{"blog-post-en-smtp-verification-explained":3},{"post":4,"related":98,"locales":114},{"id":5,"title":6,"author":7,"body":8,"date":82,"description":83,"draft":84,"extension":85,"image":86,"meta":87,"navigation":88,"path":89,"readingMinutes":90,"seo":91,"stem":92,"tags":93,"updated":96,"__hash__":97},"blog_en\u002Fblog\u002Fsmtp-verification-explained.md","What an SMTP check actually tells you","MailOK",{"type":9,"value":10,"toc":78},"minimark",[11,15,18,26,45,52,69,72,75],[12,13,14],"p",{},"SMTP is the protocol mail servers use to transfer email. A verifier can begin that conversation, present a recipient address, and stop before submitting a message.",[12,16,17],{},"Before connecting, a check can examine the address format and the domain's mail routing. An MX record identifies a receiving server. Missing MX records alone don't settle the question: SMTP defines an address-record fallback in some cases.",[12,19,20,21,25],{},"The recipient command is ",[22,23,24],"code",{},"RCPT TO",". Its response needs interpretation:",[27,28,29,36,42],"ul",{},[30,31,32,35],"li",{},[22,33,34],{},"250"," accepts the recipient at that stage. Later checks can still reject delivery.",[30,37,38,41],{},[22,39,40],{},"550"," rejects the request. It can mean a nonexistent mailbox, but also a policy restriction.",[30,43,44],{},"A temporary failure leaves the question unresolved and may justify a later attempt.",[12,46,47,48,51],{},"A probe that stops before ",[22,49,50],{},"DATA"," submits no message body. The receiving server can still log the connection and the address being checked.",[12,53,54,55,62,63,68],{},"Those mechanics are described in ",[56,57,61],"a",{"href":58,"rel":59},"https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc5321",[60],"nofollow","the SMTP specification",". ",[56,64,67],{"href":65,"rel":66},"https:\u002F\u002Fwww.rfc-editor.org\u002Frfc\u002Frfc3463.html",[60],"Enhanced status codes"," can add detail about the reason for a failure.",[12,70,71],{},"A catch-all server complicates the result by accepting recipients regardless of whether an individual mailbox exists. Some servers also avoid exposing useful recipient information.",[12,73,74],{},"That is why a check should preserve uncertainty. Turning every acceptance into “a real person is here” or every refusal into “this mailbox doesn't exist” loses information the response never supplied.",[12,76,77],{},"Confirmation serves a different purpose. When a user completes a requested confirmation step, you have evidence of access to that inbox. An SMTP check alone cannot establish that.",{"title":79,"searchDepth":80,"depth":80,"links":81},"",2,[],"2025-06-18","A server response provides evidence about delivery, but it cannot confirm everything about a mailbox.",false,"md","\u002Fog\u002Fblog\u002Fen\u002Fsmtp-verification-explained.png",{},true,"\u002Fblog\u002Fsmtp-verification-explained",1,{"title":6,"description":83},"blog\u002Fsmtp-verification-explained",[94,95],"Verification","Technical","2026-05-27","17xW6nwAy2cYCrRNtqhUVVmNn0S7hx1-7sjkEfCg7fA",[99,107],{"path":100,"title":101,"description":102,"date":103,"tags":104,"readingMinutes":90},"\u002Fblog\u002Fspreadsheet-in-spreadsheet-out","Keep a contact ID in your verification file","A simple export makes it easier to return each result to the right contact without exposing your whole CRM.","2026-07-29",[105,106],"Guides","List hygiene",{"path":108,"title":109,"description":110,"date":111,"tags":112,"readingMinutes":90},"\u002Fblog\u002Fthe-api-now-belongs-to-your-account","Before you connect an email verification API","Plan for unresolved checks, failed requests and changing addresses before putting verification into production.","2026-06-23",[113,105],"API",[115],"en",1790300928255]