Skip to content
KVKK & GDPR Compliant Turkey Data Center 24/7 Technical Support destek@mxgate.com.tr
New: IP reputation monitoring is now free on every plan Start your 14-day free trial →
USE CASE · OTP AND VERIFICATION

OTP and Verification Emails

When an email carrying a verification code is delayed, the user cannot finish signing up and gives up soon after. MXGate sends codes, password resets and login notices from a source separate from campaign traffic, logs every delivery, and blocks fake verification emails sent in your domain’s name.

Scope
Verification codes, address confirmation, password resets, login notices
Key metric
Not open rate — seconds elapsed
Separation
Transactional traffic leaves through a source separate from campaigns
Anti-spoofing
SPF, DKIM and DMARC lock down sending on behalf of your domain
Limitation
Email alone is not an authentication channel (NIST SP 800-63B)
WHY THESE EMAILS ARE DIFFERENT

A verification email is the most time-critical mail you send

A newsletter still works if it is read tomorrow. A verification code read tomorrow is worthless. That single difference means the whole sending path has to be built differently.

The user is waiting on the screen

The code field is open and the countdown is running. Success here is not measured by open rate but by the seconds between dispatch and delivery. Delay turns directly into an abandoned signup.

The code is single-use and short-lived

Verification codes are generated for a single use and expire quickly; the NIST SP 800-63B guideline sets ten minutes as the upper bound. A code that arrives late may already be dead on arrival.

The easiest email type to impersonate

An attacker writes the same sentence: “confirm your account”, “reset your password”. If sending on behalf of your domain is not locked down, the user has nothing left to tell the real message from the fake one.

DIAGNOSIS

Five real causes behind “the code never came”

The ticket always says the same thing, but the cause behind it is not always the same. The table below takes you from the symptom the user reports to the actual cause.

Cause What the user sees What is done
Greylisting No code at all, then it turns up a quarter of an hour late The receiving server deliberately delays the first attempt from an unfamiliar source. Traffic leaving a recognised source with steady volume runs into this delay far less often.
Same source as campaigns The code lands in the “Promotions” tab among marketing mail Transactional sending is moved to a source separate from newsletter and announcement traffic. When a campaign’s complaint rate rises, verification mail takes none of the blame.
Queue delay Codes arrive not one by one but all together ten minutes later If the application server has one outgoing queue shared with bulk sending, the code waits behind it. Prioritised dispatch removes that wait.
Missing authentication records The code goes straight to the spam folder The domain’s SPF, DKIM and DMARC records are completed and every message is signed. You can see where you stand today in the free check, in thirty seconds. Free check
The sending address’s record It arrives for some recipients and never shows up for others Traffic from a shared address, or one with no history, is judged differently by each recipient. Sending from continuously monitored addresses closes that gap.
ANATOMY

What does a verification email that reaches the inbox look like?

The mock-up below shows the four defining traits of a code email with a high chance of delivery. The numbers match the notes on the right.

From Account Security <dogrulama@sirketiniz.com>1
Subject Your login verification code: 418 302

Hello — use the code below to sign in to your account.

418 302

The code is valid for 10 minutes and can be used only once.2

If this was not you, change your password.

This is a transactional notification; it carries no marketing content and no unsubscribe link.3
SPF ✓   DKIM ✓   DMARC ✓4
  • 1
    Its own sender address
    Transactional mail leaves from an address reserved for this purpose, not from the newsletter address. Because the receiving server judges the two streams separately, the record of one does not drag the other down.
  • 2
    Validity and single use stated in the text
    How long the code is valid and that it is single-use are stated plainly. This guides the user and records the code’s expected lifetime; NIST SP 800-63B sets ten minutes as the upper bound.
  • 3
    No marketing attached
    When a campaign link and an unsubscribe link are added to a transactional message, receiving servers start treating it like bulk mail. The code email stays plain and does one job.
  • 4
    All three authentication checks pass
    When SPF, DKIM and DMARC all pass, the recipient can verify the message really came from your domain. Messages that clear all three reach the inbox at a markedly higher rate than those that do not.
IMPERSONATION RISK

A fake verification email is phishing at its most effective

The user is already expecting a code. A fake “confirm your account” message that lands at the right moment can catch even a careful user. That is why protection belongs at the sending authority, not in the inbox.

Sending authority is locked to your domain
SPF and DKIM records define who may send email in your name. Once that definition is complete, mail from a source outside the list cannot be verified on the receiving side.
DMARC turns failure into rejection
DMARC tells the recipient what to do with mail that fails verification. With the policy set to reject, a forged message stops at the receiving server instead of relying on the user to be suspicious.
Every code is on the record
Which address it went to, at which second, and how the receiving server replied are all visible in the panel. The “code never came” discussion ends with a record rather than a guess.
Your outbound traffic is inspected too
A compromised account sending bulk mail in your name damages your sending record for days. Inspection on the outbound side stops it within the first minute.
Your application code stays as it is; the server’s outgoing mail setting is pointed at MXGate — Smarthost setup More on inspection, quotas and incident handling for outbound traffic in the details
An attacker imitating fake login and password reset screens to harvest user credentials
Fake verification screens are built too well to be told apart by eye. The one thing that distinguishes them is whether the email really left your domain.
PRICING

A plan that matches your sending volume

Verification email volume usually grows with your user count. Plans are set by domain and volume, and setup and support are included in every tier.

Starter
$49
USD / mo
2 servers · 250,000 emails / month
Enterprise
$200
USD / mo
Unlimited servers · Unlimited email
Talk About Your Sending Setup
FAQ

Questions from development teams

Why do verification code emails arrive late?

There are three common causes: the receiving server deliberately delaying an unfamiliar source, the code sitting in the same queue as newsletter and campaign traffic, and gaps in the domain’s authentication records. All three are solved on the sending side and need no change in your application.

Are verification emails sent separately from campaign emails?

Yes. Transactional mail leaves through a source that is separate from newsletter and announcement traffic. If a campaign’s complaint rate rises, your verification emails are unaffected; the two streams are also judged separately by the receiving side.

Is it safe to send verification codes by email?

Email on its own is not considered an authentication channel; NIST SP 800-63B states that email should not be used as an out-of-band authenticator. Even so, email remains the standard channel for account creation, address confirmation, password resets and login notices. Making sure those messages arrive on time and cannot be impersonated is itself part of security.

Do we have to change our application code?

No. Your application keeps sending mail exactly as it does today; the only change is the address and credentials in your server’s outgoing mail settings. On most systems setup takes under fifteen minutes, and rolling back is just as easy.

Can we see whether the code reached the user?

Yes. Every send is listed individually in the panel: recipient address, time of dispatch, the receiving server’s response and whether it was delivered. For a user who says the code never came, you open the record in seconds and see whether the issue is on your side or theirs.

Last updated: · Source: NIST SP 800-63B and MXGate platform data, 2026