Authentication email
Password resets, one-time codes and magic links, one API call each
Sign-in mail is the email users sit and wait for. MailLand gives you templates that never go out with a raw placeholder, idempotency keys that turn a retried request into a replay instead of a second email, and delivery events you can show in your own interface.
Why authentication mail needs more care
Someone is waiting
A user is on your sign-in screen. A code that never arrives, or arrives twice, turns into a support ticket or a lost sign-up.
Receivers check who sent it
Mailbox providers check SPF, DKIM and DMARC. MailLand shows the records to publish and signs every message with your domain's DKIM key.
One typo breaks the flow
A mistyped address at sign-up means every later code goes nowhere. Catch it when the address is entered, not after the first failed sign-in.
A one-time code, sent from a stored template
The code goes in as a per-recipient variable. The idempotency key makes a retry after a timeout safe.
curl -X POST https://api.mail.land/v1/transactional/send \
-H "X-API-Key: ml_pet_..." \
-H "X-Idempotency-Key: signin-7f3a9c-1" \
-H "Content-Type: application/json" \
-d '{
"from": { "email": "[email protected]", "name": "Your App" },
"to": [{
"email": "[email protected]",
"variables": { "code": "482913" }
}],
"templateId": "t8x2m4q9zk7wpr",
"variables": { "expiresInMinutes": "10" },
"tags": ["sign-in-code"]
}'What MailLand gives you for sign-in mail
Templates that refuse to send a broken message
Keep the reset, code and magic-link templates in MailLand and fill in {{placeholders}} per request. A missing value stops the send with a 422 that names the variable.
Retries without duplicates
Send an X-Idempotency-Key with each code. If your request times out and you retry with the same key within 24 hours, MailLand returns the original response and sends nothing.
Typo and disposable-domain protection
Turn on protection for your transactional stream and MailLand refuses addresses at disposable providers or with a likely typo in the domain, and suggests the corrected address.
Validation at sign-up
Call the validation API when a user registers. It checks syntax, likely typos, disposable domains, role accounts such as info@, and the receiving mail server.
Delivery events for your interface
Delivered, deferred, bounced and failed events reach your webhook, so your app can tell a user to check the address or try again.
Links left as you wrote them
Open and click tracking are off by default for transactional mail, so unless you turn tracking on, reset and magic links reach users exactly as you wrote them.
Sent from your own domain
Add your domain, publish the SPF, DKIM and DMARC records the panel shows, and MailLand verifies them before you can send. Each domain gets its own 2048-bit RSA DKIM key automatically.
What we do not promise
We publish no delivery-time figure: the receiving mail server decides when it accepts a message. What MailLand gives you is a complete record of what happened to each message and when.
Questions about authentication email
How quickly will a code arrive?
We do not publish a delivery-time promise. The API answers once the message is queued, and the response says when. The delivered or deferred event then tells you when the receiving server accepted the message or asked to retry.
How should I handle the user pressing resend?
Treat each new code as a new request with a new idempotency key. Reuse a key only when you retry the same request after a timeout: within 24 hours, that retry returns the original response and sends nothing.
Can I block disposable addresses at sign-up?
Yes, in two ways. Turn on disposable-domain protection for the transactional stream, or call the validation API before you create the account.
Can I test the flow without emailing real users?
Yes. A sandbox key accepts and records each request without delivering it, or delivers only to an allow-list of addresses you choose.
Can a marketing unsubscribe stop password resets?
No. An unsubscribe applies to marketing mail or to one list, and does not suppress transactional mail to that address.
Send your first sign-in code today
Create a free account, verify your domain and store your first template. 1,000 emails a month are free.