Why your app’s signup emails aren’t arriving
Learn why app signup emails fail to arrive and how to check domain verification, SPF, DKIM, DMARC, and server-side API key use.
“Sent” only means your app handed the email to an email service; it does not mean the email reached the inbox. The usual cause is that your domain has not proved it is allowed to send that email.
AI coding tools can write the code to send signup and password reset emails. They usually can’t access your DNS settings, so the domain setup step can get missed.
Check these four things
-
You’re sending from a domain you own. Use an address on a domain you control, such as
hello@example.com, and make sure you can edit that domain’s DNS records. -
SPF and DKIM pass. SPF lists which services can send email for your domain. DKIM adds a signature that lets receiving servers check the message came from an authorized sender and wasn’t changed in transit. You can check them with the SPF checker and DKIM checker.
-
DMARC is present. DMARC tells receiving mail servers how to handle messages that fail your domain’s SPF or DKIM checks. Check your record with the DMARC checker. For more detail, see SPF, DKIM and DMARC explained for developers.
-
Your API key stays on the server. Don’t put it in browser code, where visitors can find it. Send email from a server route, server action or backend job.
Set up your domain
- Add your sending domain in your email provider.
- Copy the DNS records it gives you and add them at your DNS host.
- Wait for the provider to verify the records.
- Send a test email to yourself and check whether it arrives.
Once the domain is verified, an AI agent can finish the app integration, including the server-side send code.
If the email still doesn’t arrive
Check your spam folder. If you already have an SPF record, edit it to include the new sender instead of adding a second SPF record. DNS changes can take a few minutes to show up, so wait and check again.
If you want an email API for your app, SendPanda is one option.