emailverifier.dev
Posts

Can Email Verification Detect Aliases? Usually Not

| 5 min read | Usama Ejaz
An envelope reaches a mail server that accepts it, while the server’s hidden alias route branches to two destination inboxes.

Email verification can check whether an alias address is structured correctly, routes to a mail system, and receives a useful SMTP response. It usually cannot reveal that the address is an alias, identify the destination inbox, or prove that two different addresses belong to one person.

The reason is not a missing trick in the verifier. Alias expansion happens inside the receiving mail system, after the sender has presented the address it was given.

Watch the alias disappear behind one SMTP reply

This hypothetical trace separates what a verifier can observe from what the recipient's system may do privately:

C: EHLO verifier.example
S: 250-mx.relay.example
S: 250 PIPELINING
C: MAIL FROM:<probe@verifier.example>
S: 250 2.1.0 Sender OK
C: RCPT TO:<orders-7f3c@relay.example>
S: 250 2.1.5 Recipient OK

# Internal route, not returned to the SMTP client:
orders-7f3c@relay.example -> usama@inbox.example

The verifier sees acceptance for orders-7f3c@relay.example. The last line is visible only to the operator of relay.example. It could point to one mailbox, several recipients, another forwarder, or a rule that changes tomorrow.

RFC 5321 assigns the meaning of a local part to the host named by the domain. The sender should not guess that meaning from characters in the address. The same standard describes alias expansion as the recipient mailer replacing a pseudo-mailbox in the envelope with its destination addresses while leaving the rest of the envelope and message unchanged.

A 250 reply to RCPT TO therefore supports a narrow statement: this server accepted that recipient in this transaction. The RCPT TO command carries the forward path; its reply does not have to disclose the server's routing table.

Why do some aliases look detectable?

Some addresses expose a recognizable convention. A plus-tagged address might split into a user part and a detail part. RFC 5233 shows user+detail@example.com as one possible subaddress form, but it also allows a different separator and placement. That is a filtering convention, not a universal rewrite rule.

Provider-specific behavior is another case. Gmail documents its own treatment of dots, and the archive's Gmail dot-handling guide shows how to build an explicit comparison key for that provider. The plus-addressing guide explains why stripping a tag from every domain is unsafe.

Those rules can identify a known address pattern. They still cannot uncover an arbitrary alias such as orders-7f3c@relay.example when the domain publishes no public mapping.

Role addresses, catch-all behavior, and disposable providers are separate signals. An alias can be personal and long-lived. A normal mailbox can be shared. A catch-all domain can accept an invented local part without mapping it to a named mailbox. Calling all of these “aliases” destroys the distinction your signup policy needs.

What does verification still tell you?

Verification evaluates the address the user submitted. It can reject malformed syntax, inspect domain mail routing, classify known provider risks, and use an SMTP response when the receiving server provides one. If the server times out, blocks the probe, or accepts every recipient, the result should stay inconclusive.

The current emailverifier.dev API keeps the technical status, recommended action, and supporting signals separate. That model matters here. A deliverable result applies to the alias address as presented at the time of the check. It does not claim to know the hidden destination or a canonical human identity.

Likewise, a confirmation link proves that someone with access to the alias route completed the step. It does not prove that the alias is the person's primary mailbox, that no other alias reaches the same inbox, or that only one person can read it.

Wouldn't forwarding expose the next hop?

Not during the first SMTP conversation. Once the receiving system accepts the recipient, it may expand the alias locally or start another delivery transaction. The original sender is outside that decision.

A later message trace or delivery status notification can sometimes reveal another address. It is not a dependable alias-discovery API, and many privacy aliases are designed specifically to keep the destination private. The archive's forwarding trace covers what changes when a new SMTP hop is created.

The strongest objection is practical: “I only need one account per email, so why not normalize aliases into one key?” Because one account per stored string is not one account per inbox, and one inbox is not one person. Generic normalization can merge unrelated addresses, send recovery mail to an address the user never entered, or create account-ownership confusion.

OWASP's current email validation guidance calls out identity confusion as a security consequence of improper normalization and verification. The safer boundary is to preserve the delivery address and make any collision rule explicit.

Store the delivery address and the policy evidence separately

I would keep the exact submitted address for delivery and support. Normalize the domain where the standards allow it, but preserve the local part. The case-sensitivity guide shows that storage model in detail.

If your product has a documented provider-specific collision rule, store a separate comparison key. Do not send mail to that derived key. Keep the verification result and confirmation timestamp as their own evidence, too. Each field answers a different question.

For trial abuse, an alias-shaped address is at most one clue. Rate limits, device and payment reuse, account behavior, and the value being granted are stronger context. A forwarding alias may be a user's deliberate privacy boundary, not an attempt to evade your policy.

Email verification can tell you whether the alias itself appears usable or remains uncertain. The hidden route behind it is the recipient system's information. Treat the address as a delivery endpoint, not a transparent identity.

Continue reading