[{"data":1,"prerenderedAt":127},["ShallowReactive",2],{"blog-post-en-verify-email-at-signup":3},{"post":4,"related":111,"locales":125},{"id":5,"title":6,"author":7,"body":8,"date":95,"description":96,"draft":97,"extension":98,"image":99,"meta":100,"navigation":101,"path":102,"readingMinutes":103,"seo":104,"stem":105,"tags":106,"updated":109,"__hash__":110},"blog_en\u002Fblog\u002Fverify-email-at-signup.md","Check the address while the person can still fix it","MailOK",{"type":9,"value":10,"toc":91},"minimark",[11,15,24,27,79,82,85,88],[12,13,14],"p",{},"An email typo is easiest to fix while the person is still on your form. Later, you may have no way to reach them.",[12,16,17,18,23],{},"Start with basic format validation. Offer ",[19,20,22],"a",{"href":21},"\u002Fblog\u002Femail-typos-at-signup","spelling suggestions"," where useful, but let the person choose. Then run any verification request from your server, where your API key stays private.",[12,25,26],{},"The response should change the form in a way that helps:",[28,29,30,43],"table",{},[31,32,33],"thead",{},[34,35,36,40],"tr",{},[37,38,39],"th",{},"Outcome",[37,41,42],{},"Form behaviour",[44,45,46,55,63,71],"tbody",{},[34,47,48,52],{},[49,50,51],"td",{},"Clear address error",[49,53,54],{},"Explain the issue and let the person edit it.",[34,56,57,60],{},[49,58,59],{},"Positive result",[49,61,62],{},"Continue to the appropriate confirmation step.",[34,64,65,68],{},[49,66,67],{},"Catch-all or other review flag",[49,69,70],{},"Avoid a blanket rejection; apply the rule that fits your product.",[34,72,73,76],{},[49,74,75],{},"Inconclusive check or request timeout",[49,77,78],{},"Keep the address unconfirmed and provide a way to continue or retry.",[12,80,81],{},"Don't leave a spinner running indefinitely. Keep the person's other answers so a failed check doesn't make them fill out the form again.",[12,83,84],{},"For a newsletter, confirmation can establish that someone with access to the inbox requested the subscription. For an account, require the appropriate ownership check before allowing actions that depend on that address. Letting a signup proceed during a timeout doesn't mean treating ownership as confirmed.",[12,86,87],{},"Show the submitted address on the confirmation page and make it editable. That also helps people whose mistake wasn't caught by verification.",[12,89,90],{},"Finally, keep handling bounces and address changes after signup. A check today doesn't ensure the address will still work next year.",{"title":92,"searchDepth":93,"depth":93,"links":94},"",2,[],"2025-05-16","Catch obvious mistakes at signup, allow for inconclusive checks, and confirm inbox access separately.",false,"md","\u002Fog\u002Fblog\u002Fen\u002Fverify-email-at-signup.png",{},true,"\u002Fblog\u002Fverify-email-at-signup",1,{"title":6,"description":96},"blog\u002Fverify-email-at-signup",[107,108],"API","Guides",null,"-Bx6_gnsPac1NbFlv_c82SdQ0ObwzclK2gLfuqmlhNg",[112,119],{"path":113,"title":114,"description":115,"date":116,"tags":117,"readingMinutes":103},"\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",[108,118],"List hygiene",{"path":120,"title":121,"description":122,"date":123,"tags":124,"readingMinutes":103},"\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",[107,108],[126],"en",1790300928302]