Mailbase
FeaturesPricingDocsBlogComparisonsChangelog
Sign inStart free
Home/Blog/Are Email Addresses Case Sensitive? A Practical Guide
Email infrastructureUpdated August 5, 20269 min read

Are Email Addresses Case Sensitive? A Practical Guide

Email address case sensitivity explained for developers, with safe rules for storage, comparison, deduplication, sign-in, sending, and provider-specific aliases.

By Mailbase Team · Target keyword: are email addresses case sensitive
Hands typing on a laptop keyboard in an inbox view — Are Email Addresses Case Sensitive? A Practical Guide
Photo from Unsplash
On this page
OverviewSeparate the protocol rule from provider behaviorStore the original address and a deliberate comparison keyChoose comparison semantics for each workflowDo not confuse case handling with alias normalizationMigrate and test without creating identity collisionsPublish one operational policy that engineering and support can useCommon MistakesSources & Further ReadingRelated guidesFAQRelated reading

Overview

Email addresses are only partly case-insensitive. The domain after the at sign is case-insensitive, so example.com and EXAMPLE.COM identify the same domain. The local part before the at sign is different: RFC 5321 says it must be treated as case sensitive, even though many large mailbox systems choose to deliver differently cased versions to the same mailbox.

The safe application rule is therefore not 'lowercase every email.' Preserve the address the user supplied, normalize the domain for lookup, and compare or canonicalize the local part only under a documented policy. A login system may deliberately offer case-insensitive account lookup, but that product decision should not silently rewrite outbound addresses or claim that every receiving provider treats local-part variants as identical.

Separate the protocol rule from provider behavior

Glowing network cables converging into a switch — Separate the protocol rule from provider behavior
Photo from Unsplash

RFC 5321 defines SMTP mailbox semantics. It states that the local part must be treated as case sensitive and gives smith, Smith, and SMITH as values that could identify different mailboxes. The same section discourages exploiting local-part case sensitivity because doing so impedes interoperability. For the domain, normal DNS and SMTP rules make letter case irrelevant.

Those two statements are not contradictory. The transport rule protects a receiving system's authority to distinguish local parts; the interoperability advice recognizes that surprising distinctions are operationally painful. A mailbox provider can decide that Alice and alice are equivalent for its own domain. An unrelated SaaS application cannot safely extend that decision to every domain on the internet.

  • Do not use one blanket rule to describe both sides of the at sign
  • Do not infer universal behavior from tests against one mailbox provider
  • Preserve enough data to reverse a normalization-policy mistake
  • Treat provider-specific canonicalization as versioned business logic
Address componentPortable ruleApplication action
Local part before @Potentially case-sensitivePreserve it; apply equivalence only under explicit policy
Domain after @Case-insensitiveLowercase or otherwise canonicalize for lookup
Display formUser-facing representationRetain the accepted original for confirmation and support
Provider aliasesProvider-specific behaviorDo not assume it applies outside that provider

Store the original address and a deliberate comparison key

Screen full of analytics charts and metrics — Store the original address and a deliberate comparison key
Photo from Unsplash

A robust data model separates presentation from lookup. Keep email_original as the address the user confirmed, parsed local_part and domain fields when useful, and an email_lookup_key derived by a documented function. At minimum, the lookup key can preserve the local part while lowercasing the domain. If your product intentionally makes account sign-in case-insensitive, use a separate account lookup key rather than mutating the delivery address.

This separation matters during migrations. If a historical system lowercased everything, the original distinction may already be lost. Do not pretend it can be reconstructed. Mark the provenance of imported values, identify collisions before adding a unique index, and require confirmation when two records collapse under a new comparison policy.

  • Parse with a maintained address parser instead of splitting arbitrary header text
  • Keep display names separate from mailbox addresses
  • Version the function used to derive comparison keys
  • Never rewrite an address merely to make a database uniqueness constraint convenient
FieldExamplePurpose
email_originalSales.Team@Example.COMConfirmed display and outbound value
local_partSales.TeamPreserved mailbox identifier
domain_lookupexample.comCase-insensitive domain lookup
email_lookup_keySales.Team@example.comConservative default comparison
account_login_keysales.team@example.comOptional product-defined login comparison

Choose comparison semantics for each workflow

Different workflows answer different identity questions. Sending asks which mailbox string should be submitted to the provider. Login asks which internal account the claimant is trying to access. Contact deduplication asks whether two records should merge. Suppression asks whether an address should be blocked from another send. These decisions may share a parser, but they should not inherit one accidental lowercase operation.

For sending, preserve the confirmed delivery address. For sign-in, many products deliberately use a case-insensitive key to reduce lockouts, then prove control through a password, passkey, or magic link. For suppression and deduplication, start conservatively: normalize the domain, preserve the local part, and merge only when provider-specific evidence or user confirmation justifies a broader equivalence.

  • Use an immutable contact or account ID as the primary identity
  • Record why a merge or suppression match occurred
  • Make address changes a verified workflow rather than an in-place typo fix
  • Keep authentication comparison rules separate from SMTP delivery claims
WorkflowRecommended defaultPrimary risk
Outbound deliveryUse the confirmed original addressChanging the destination
Account sign-inUse an explicit product login keyDuplicate accounts or account confusion
CRM deduplicationSuggest possible matches; do not auto-merge solely on aggressive normalizationCombining different people
SuppressionMatch the conservative delivery identity firstResending to an opted-out or failed address
AnalyticsRetain both recipient ID and effective addressSplitting or combining histories incorrectly

Do not confuse case handling with alias normalization

Case folding is only one possible mailbox-provider behavior. Some providers also interpret dots, plus tags, aliases, or domain variants in provider-specific ways. Those are not general SMTP equivalence rules. Removing dots or plus suffixes across an entire contact database can combine unrelated mailboxes at providers where those characters are significant.

If a narrow product needs provider-aware canonicalization, scope each rule to domains the provider explicitly controls, document the source and purpose, preserve the submitted address, and test for changes. Even then, use the canonical form as a hint or abuse-control signal unless you can tolerate false matches. A marketing CRM, identity system, and fraud engine may appropriately make different decisions from the same hint.

  • A plus tag is not universally disposable
  • Dots can be meaningful in a local part
  • Similar-looking domain names are not aliases without evidence
  • A canonicalization hint is not proof that two users are the same person
  1. Apply syntax parsing and domain case normalization universally.
  2. Preserve the original local part and complete confirmed address.
  3. Identify the responsible mailbox provider from controlled configuration, not display text.
  4. Apply only that provider's documented alias rule for the specific workflow.
  5. Retain the rule name and version alongside any derived canonical value.
  6. Review collisions before merging records or transferring account access.

Migrate and test without creating identity collisions

Before changing a production normalization rule, compute proposed keys without writing them. Group collisions, count the workflows affected, and classify each group: duplicate record, provider alias, shared mailbox, distinct local-part case, malformed import, or unresolved. Resolve account and consent collisions manually when an automatic merge could transfer access or erase evidence.

Your test matrix should include same-domain case variants, domain-only case variants, plus and dot variants, ASCII and SMTPUTF8 local parts, malformed input, and addresses at a controlled test domain where you can deliberately configure case behavior. Exercise signup, login, magic links, imports, sends, bounces, replies, unsubscribes, suppressions, exports, and address changes.

  1. Document the current parser, storage form, indexes, and comparison sites.
  2. Implement one pure function for each intended comparison policy.
  3. Backfill proposed keys into a temporary field or offline report.
  4. Review every unique-key collision before enforcing a constraint.
  5. Dual-read or shadow-compare during rollout and log policy disagreements safely.
  6. Verify high-risk flows, then migrate writes and retain a rollback path.
Test caseExpected conservative resultWhat it catches
Alice@example.com vs Alice@EXAMPLE.COMEquivalent domain; same preserved local partFailure to normalize domain case
Alice@example.com vs alice@example.comPotentially distinct delivery identitiesBlind full-address lowercasing
a.b@example.com vs ab@example.comDistinct without provider evidenceUnsafe dot removal
sales+eu@example.com vs sales@example.comDistinct without provider evidenceUnsafe plus-tag removal
Two accounts under a new login keyCollision review, not silent mergeAccount takeover and data loss

Publish one operational policy that engineering and support can use

Write down what is preserved, what is normalized, which workflows use which key, how provider-specific rules are approved, and what happens on collision. Expose safe diagnostics to support: original address, normalized domain, policy version, confirmation state, and immutable contact or account ID. Avoid exposing full addresses in broad logs when a redacted value and stable ID will do.

Mailbase's relevant role is the workflow layer around contact, campaign, suppression, event, and reply records. Operators should preserve provider recipient IDs and the address associated with each send attempt instead of expecting a global lowercase rule to reconcile history. If upstream imports or identity systems canonicalize addresses, document that boundary before contacts enter campaigns or suppression workflows.

  • Prefer immutable IDs over email strings as relational keys
  • Audit normalization changes like schema migrations
  • Preserve consent and suppression evidence through merges
  • Escalate ambiguous collisions instead of guessing mailbox equivalence
OwnerDecisionEvidence
Identity teamLogin comparison and account collision policyAuthentication tests and reviewed migrations
Email platformDelivery address preservation and event correlationProvider event fixtures and recipient timeline
Data/CRMDeduplication confidence and merge approvalCollision report and merge audit trail
Marketing operationsImport, suppression, and unsubscribe matchingSeed import and suppression tests
Support/securityAddress-change and recovery procedureVerified change record and access log

Common Mistakes

  • Choosing a tool before deciding who owns deliverability.
  • Treating DNS authentication as a one-time checkbox instead of an operating baseline.
  • Mixing product-critical transactional email with experimental marketing sends, with no clear boundary.
  • Trusting headline metrics (like open rate) that privacy proxies now inflate.

Sources & Further Reading

Official docs for current setup details, pricing, and API behavior — verify specifics there, since they change.

RFC 5321: Simple Mail Transfer Protocol

Related guides

More on are email addresses case sensitive and the surrounding email infrastructure workflow:

Mailbase API docs
API token docs
transactional email for SaaS
email API vs SMTP
SMTP relay for SaaS
AWS SES email stack
SMTPUTF8 international email addresses
Try Mailbase free
Send 200 emails a month on us. Paid plans start at €9 — or bring your own useSend for €5.
See plans

FAQ

Are email addresses case sensitive?

Partly. The domain after the at sign is case-insensitive. Under SMTP, the local part before the at sign must be treated as potentially case sensitive, although many mailbox providers choose to treat case variants as the same mailbox.

Should I lowercase email addresses before storing them?

Do not blindly lowercase the full address. Preserve the confirmed original and normalize the domain for lookup. If your product needs a case-insensitive login key, store that as a separate derived value under an explicit policy.

Can Alice@example.com and alice@example.com be different mailboxes?

Yes, the receiving domain is allowed to distinguish those local parts. Many providers do not, but an external application should not assume universal equivalence unless it has a documented rule for that provider or confirmation from the user.

Should email login be case sensitive?

It can be a deliberate product choice to make account lookup case-insensitive, which often reduces user lockouts. Keep that authentication rule separate from the address used for delivery, detect collisions before enforcing uniqueness, and still require normal proof of account control.

Can I remove dots and plus tags when deduplicating email addresses?

Not as a universal rule. Dots and plus signs can be significant in a local part, and alias behavior is provider-specific. Apply a documented provider rule only within its verified domain scope, preserve the submitted address, and review risky merges.

Related reading

Transactional email7 min read
Transactional Email for SaaS: The Practical Guide
A practical guide to transactional email for SaaS: what counts as transactional, choosing an API or SMTP provider, templates, deliverability, idempotency, and the operations that keep critical mail flowing.
Deliverability7 min read
Email API vs SMTP: Which Should You Use?
Email API vs SMTP compared for SaaS: how each works, reliability, speed, debugging, features, and portability — plus why many teams use both.
Transactional email7 min read
SMTP Relay for SaaS Apps: What to Use and Why
What an SMTP relay is, when a SaaS app should use one, how it differs from an email API, the providers to consider, and the DNS and production tradeoffs.
Transactional email7 min read
AWS SES Email Stack for SaaS Builders
How to think about Amazon SES as part of a SaaS email stack: what SES is and isn't, the layers you build on top of it, the sandbox/SNS setup, and where it fits versus a full API.
Email infrastructure9 min read
SMTPUTF8 and International Email Addresses: A Practical Guide
A practical SMTPUTF8 guide for accepting, storing, sending to, and troubleshooting international email addresses without confusing Unicode local parts with IDN domains.
Email infrastructure9 min read
Email Webhook Events: A Practical Processing Guide
A practical email webhook events playbook for building idempotent ingestion, clean event models, suppression updates, and reliable analytics.
Mailbase
Product
FeaturesPricinguseSend integrationChangelog
Learn
BlogDocsAPI referenceResources
Compare
ComparisonsAlternatives
Guides
Transactional email servicesSelf-hosted useSend stackSelf-hosted email marketingSPF, DKIM & DMARCEmail deliverability
Legal
TermsPrivacy
© 2026 Mailbase · french-webEmail workflow for builders.