Valid Email Address Format: Rules, Examples, and How to Validate
Back to all articles

Valid Email Address Format: Rules, Examples, and How to Validate

What makes an email address valid? Learn the exact format rules, common error patterns, and how to validate email addresses in your forms and lists.

Published
November 3, 2023
Updated
April 1, 2026

Published by

Bulk Mail Verifier

Bulk Mail Verifier

Tools and insights for cleaner lists and better sending reputation.

Reading lane

Practical workflows for verification, deliverability, and outreach teams that want fewer bounces and cleaner campaign data.

Try the verifier
Valid Email Address Format: Rules, Examples, and How to Validate
Bulk Mail Verifier Blog Updated April 1, 2026

What Makes an Email Address Valid?

An email address is valid when it meets three requirements: it's correctly formatted according to internet standards, the domain it references exists and is configured to receive email, and the specific mailbox at that domain is active.

Most discussions of email validity focus only on format — whether the address looks right. But format alone doesn't guarantee deliverability. An address can be perfectly formatted and still bounce because the domain has expired or the mailbox has been deleted.

This guide covers all three layers: format rules, domain requirements, and mailbox validity.


The Structure of an Email Address

Every email address has two components separated by the @ symbol:

local-part @ domain

Example: john.smith @ company.com

  • john.smith is the local part (also called the "prefix")
  • company.com is the domain

Both parts must follow specific rules.


Rules for the Local Part (Before the @)

The local part can be up to 64 characters long and may include:

Allowed Characters

  • Lowercase letters: a–z
  • Uppercase letters: A–Z (email is case-insensitive in practice, though technically case-sensitive per standard)
  • Digits: 0–9
  • Special characters: ! # $ % & ' * + - / = ? ^ _ { | } ~ .

Rules for the Period (.)

  • Cannot be the first character: .john@company.com is invalid
  • Cannot be the last character: john.@company.com is invalid
  • Cannot appear consecutively: john..smith@company.com is invalid

Common Local Part Examples

Address Valid? Reason
john.smith ✓ Valid Standard format
john+filter ✓ Valid + is allowed
john_smith ✓ Valid Underscore allowed
j ✓ Valid Single character OK
john..smith ✗ Invalid Double dot
.john ✗ Invalid Leading dot
john smith ✗ Invalid Space not allowed
john@smith ✗ Invalid Double @ creates confusion

Rules for the Domain Part (After the @)

The domain can be up to 255 characters total and consists of labels separated by dots.

Domain Requirements

  • Registered: The domain must be registered with a domain registrar
  • DNS: The domain must have active DNS records
  • MX records: For an email address to be deliverable, the domain must have Mail Exchange (MX) records pointing to an active mail server

Label Rules

Each label (section between dots) must:

  • Be 1–63 characters long
  • Contain only letters (a–z, A–Z), digits (0–9), and hyphens (-)
  • Not start or end with a hyphen

Top-Level Domain (TLD)

The TLD (final label: .com, .org, .io, etc.):

  • Cannot be all numeric (.123 is invalid)
  • Must be a recognized TLD (though syntax checkers typically don't verify TLD existence — a domain validator does)

Common Domain Examples

Domain Valid Format? Notes
company.com ✓ Valid Standard
sub.company.co.uk ✓ Valid Multi-level domains fine
company ✗ Invalid No TLD
company.123 ✗ Invalid Numeric TLD
-company.com ✗ Invalid Leading hyphen
company-.com ✗ Invalid Trailing hyphen

Examples: Valid and Invalid Email Addresses

Valid Email Addresses

  • john@company.com — Classic format
  • jane.doe@subdomain.company.org — Subdomain with period in local part
  • user+tag@gmail.com — Plus-sign addressing (common for Gmail filters)
  • firstname.lastname@law-firm.co.uk — Hyphenated domain
  • a@b.io — Minimal but valid
  • user_2024@internal-tools.company.com — Underscores and hyphens throughout

Invalid Email Addresses

  • @company.com — Missing local part
  • john@ — Missing domain
  • johndoe.com — Missing @ symbol
  • john doe@company.com — Space in local part
  • john@@company.com — Double @
  • .john@company.com — Local part starts with dot
  • john.@company.com — Local part ends with dot
  • john..doe@company.com — Consecutive dots
  • john@company — Missing TLD
  • john@-company.com — Domain starts with hyphen

Format Validity vs. Deliverability: An Important Distinction

A syntactically valid email address can still be undeliverable. Format checking tells you whether an address is structured correctly — it doesn't tell you whether it corresponds to an active mailbox.

Check What It Tells You
Syntax check Is the format correct?
Domain/DNS check Does the domain exist with valid MX records?
SMTP check Does the specific mailbox exist?

A complete email validation runs all three. An address that passes only the syntax check might still bounce because:

  • The domain has expired (no longer resolves)
  • The MX record points to a defunct server
  • The mailbox was deleted after the address was collected

This is why professional email verification services like BulkMailVerifier.com run all three checks — not just syntax.


How to Validate Email Addresses at the Point of Collection

Client-Side HTML5 Validation

The simplest implementation. HTML5's type="email" input attribute performs basic format validation automatically:

<input type="email" name="email" required>

This catches obvious format errors (missing @, missing domain) before the form submits. It doesn't validate domain existence or mailbox accessibility.

JavaScript / jQuery Regex Validation

For more control, a JavaScript regex can validate format on the client side:

function isValidEmail(email) {
  const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
  return regex.test(email);
}

Note: Regex can validate format but not deliverability. It's a supplement to, not a replacement for, server-side verification.

Server-Side Format Validation

Always validate on the server side, regardless of client-side validation. Server-side validation prevents bypassed client-side checks from allowing malformed addresses through.

import re

def is_valid_email(email):
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    return bool(re.match(pattern, email))

Real-Time API Verification

The most comprehensive approach. An API call to BulkMailVerifier.com during form submission validates syntax, checks domain DNS and MX records, and confirms mailbox existence in real time — all in under 500ms.

This is the only method that catches all three layers of invalidity before the address enters your database.


Common Email Validation Mistakes

Overly Restrictive Regex

Some developers use regex patterns that reject perfectly valid addresses — particularly those with plus signs (user+tag@gmail.com), long TLDs (.photography, .engineering), or international domain names. Build or use regex patterns that comply with the full RFC 5321 standard, not simplified versions.

Only Validating on the Frontend

Client-side validation can be bypassed. Always validate on the server side as well. For high-value forms, use server-side API verification that goes beyond format checking.

Treating Format Validity as Deliverability Confirmation

A common mistake: assuming an address that passes regex validation will also deliver successfully. As described above, a valid format guarantees only that the address is correctly structured — not that it exists or can receive mail.

Not Validating Email Updates

Many systems validate email at initial signup but not when users update their email address. Apply the same validation logic to update flows.


Bulk Email Format Validation

For existing lists with thousands or millions of addresses, bulk format validation is the first step in list cleaning. BulkMailVerifier.com processes your entire list at once, identifying format errors as well as domain issues and SMTP-confirmed invalids.

A full bulk verification:

  1. Runs syntax and format checks on every address
  2. Validates domain and MX records for format-valid addresses
  3. Runs SMTP checks for domain-valid addresses
  4. Returns each address categorized by status

This goes far beyond what any format validation alone can achieve, giving you a fully actionable result for every address in your list.


Frequently Asked Questions

Are email addresses case-sensitive?

By the RFC standard, the local part is technically case-sensitive (John@company.com vs. john@company.com). In practice, virtually all mail servers treat email addresses as case-insensitive. For matching purposes in your database, normalize all email addresses to lowercase.

Can an email address have multiple @ symbols?

No. A valid email address contains exactly one @ symbol, separating the local part from the domain. Addresses with multiple @ symbols are syntactically invalid.

What is the maximum length of an email address?

Per RFC standards, the local part can be up to 64 characters, the domain up to 255 characters, making the theoretical maximum 320 characters total. In practice, most real-world addresses are much shorter.

Does using + in an email address cause any problems?

The plus sign in the local part (user+tag@gmail.com) is a valid feature supported by Gmail and many other providers. It allows inbox filtering by using different "tags." Some services incorrectly reject these addresses — this is a bug in their validation logic, not an invalid address.

How do I check if an email address domain is real?

You can do a manual MX record lookup using a tool like MxToolbox. For automated bulk checking, BulkMailVerifier.com checks DNS and MX records for every address in your list as part of the standard verification process.


Validate Your Entire List

Format rules are just the beginning. True email validation confirms domain existence, MX record health, and individual mailbox accessibility — all three layers.

BulkMailVerifier.com runs all checks on every address in your list. Free trial available, no credit card required.