Suped

What special characters are allowed in email address syntax according to RFC 5322 and how do different email providers handle them?

Published 4 Jul 2025
Updated 21 Oct 2026
13 min read
Summarize with
Special characters allowed in RFC 5322 email addresses, including plus signs and hyphens.
Updated on 21 Oct 2026: We clarified provider character rules, quoted-address escaping and browser validation, and corrected the missing-MX delivery advice.
Yes, special characters are allowed in email address syntax under RFC 5322. The local part before the at sign can contain letters, digits, and these unquoted characters: ! # $ % & ' * + - / = ? ^ _ ` { | } ~. Periods are also allowed as separators between atoms. That means abced--fetet@gmail.com has valid RFC-style syntax because the double hyphen sits inside an otherwise valid local part. Gmail's public username rules do not allow hyphens, so RFC-valid syntax does not make this a registrable Gmail username.
Valid syntax is separate from provider acceptance, mailbox existence, and actual delivery. Gmail, Yahoo Mail, Outlook.com, Microsoft 365, and iCloud Mail apply their own account and routing rules. Use a confirmation email to check access to a recipient address. A sending-side email tester checks a test message and its authentication results; it does not verify that an arbitrary recipient mailbox exists.

Unquoted and quoted local parts

For new addresses, the local part has two practical RFC 5322 forms. The common form is a dot-atom: one or more atoms separated by single periods. The less common form is a quoted string: a local part wrapped in double quotes. Production systems should accept common dot-atom addresses and handle quoted local parts carefully instead of treating every unusual address as fake.
Valid unquoted local-part examples
simple@example.com first.last@example.com name+tag@example.com abced--fetet@gmail.com name/surname@example.com customer_id=42@example.com
Syntax and delivery are separate tests
An address can pass RFC syntax and still fail for a real user. The destination provider can reject it during account creation, map it to another mailbox, disable plus handling, or reject delivery during SMTP.
  1. Use RFC syntax as the broad rule for whether the address is structurally valid.
  2. Treat Gmail, Yahoo Mail, Outlook.com, and iCloud Mail as separate mailbox systems with their own account rules.
  3. Require a confirmation link or code to check mailbox access; use bounce data to investigate delivery failures.

What RFC 5322 actually allows

The core rule is easier to understand when the local part is separated into dot-atoms and quoted strings. In an unquoted local part, RFC 5322 allows atext characters inside each atom. A period is not part of an atom; it joins atoms. So first.last is valid, but .first, first., and first..last are not valid dot-atoms.
Unquoted atext characters
Letters: A-Z and a-z Digits: 0-9 Specials: ! # $ % & ' * + - / = ? ^ _ ` { | } ~ Dot: allowed only between atoms
Characters such as parentheses, angle brackets, square brackets, colon, semicolon, comma, backslash, double quote, and at sign are not ordinary unquoted atext characters in the local part. Some can appear inside a quoted local part when they follow quoted-string rules. This is why a simple character allowlist is weaker than a proper parser.

Character

Unquoted

Main caveat

Hyphen (-)
Yes
Provider signup can reject it
Plus (+)
Yes
Often used for subaddressing
Slash (/)
Yes
Many signup forms reject it
Underscore (_)
Yes
Valid locally, not in an SMTP domain label
Apostrophe (')
Yes
Does not need double quotes in a dot-atom
Period (.)
Separator
No leading, trailing, or doubled dots
At sign (@)
No
Separates local part and domain; also allowed inside quotes
Compact view of common local-part characters
Display names and comments follow separate RFC 5322 header rules. In Jane Smith <jane@example.com>, the mailbox is jane@example.com. The name and angle brackets are not local-part characters. Parenthesized comments in permitted header positions are also metadata; a single-address signup field should store the parsed mailbox rather than the whole header value.
RFC 5322 email address structure showing local-part atoms, dot separators and quoted strings.
RFC 5322 email address structure showing local-part atoms, dot separators and quoted strings.

Length limits and domain syntax

RFC 5322 defines address syntax inside messages, while RFC 5321 defines the mailbox carried by SMTP. Its limits are measured in octets, not visible characters. The local part can use up to 64 octets, and an SMTP forward-path or reverse-path can use up to 256 octets including angle brackets. That path limit leaves 254 octets for a normal mailbox address.

Part

Maximum

Implementation note

Local part
64 octets
Count encoded bytes, not characters
SMTP path
256 octets
Includes < and >
Mailbox address
254 octets
Practical result of the path limit
DNS label
63 octets
No empty labels in a host name
SMTP and DNS length limits
Normal Internet mail domains use DNS host-name labels containing ASCII letters, digits and hyphens, separated by periods. A label cannot start or end with a hyphen; underscores and spaces are not allowed. RFC syntax also permits address literals such as user@[192.0.2.1] and user@[IPv6:2001:db8::1], although web forms often reject them. Internationalized domain names (IDNs) use IDNA processing and Punycode for DNS lookup. Punycode does not encode a non-ASCII local part, which requires SMTPUTF8 support.

Provider rules are stricter than the RFC

Mailbox providers often enforce narrower rules at account creation than the RFC permits for message syntax. That is not a contradiction. RFC 5322 describes message format, while a provider's signup form also applies abuse controls, support requirements, identity rules, and legacy routing choices.
Gmail account creation with a hyphenated username and special-character validation guidance.
Gmail account creation with a hyphenated username and special-character validation guidance.
Gmail is the clearest example. Gmail's username rules allow 6-30 characters using letters, digits and periods for new public usernames. Plus signs are not registration characters, but name+tag@gmail.com can receive mail for an existing name@gmail.com account. Gmail also treats periods as insignificant in standard gmail.com usernames, so first.last@gmail.com and firstlast@gmail.com route to the same mailbox when that mailbox exists. Google Workspace custom domains do not inherit this dot rule.

Provider

Account or alias rule

Delivery behavior

Validation caveat

google.com logoGmail
New usernames: 6-30 letters, digits or periods
Dots ignored for gmail.com
Hyphens cannot be registered
yahoo.com logoYahoo Mail
Signup names and disposable aliases have separate rules
Configured disposable addresses use nickname-keyword@yahoo.com
Availability depends on account and locale; do not invent hyphen aliases
microsoft.com logoOutlook.com
New aliases: letters, digits, periods, underscores or hyphens
Configured aliases share the account inbox
Consumer alias rules are separate from Microsoft 365 tenant rules
Exchange Online
Mailbox and identity rules depend on administration settings
Plus addressing is enabled by default for receiving
Administrators can disable plus tags; tags are not configured aliases
apple.com logoiCloud Mail
iCloud.com email aliases: 3-20 characters
Configured aliases can send and receive through the same account
Alias limits do not define the full RFC character set
Custom domain
Set by mail admin
Depends on mailbox platform
Rules vary by tenant
Provider behavior examples
These are separate provider policies: Outlook.com alias rules, Exchange Online plus addressing, Yahoo's disposable address rules, and iCloud alias rules. A provider hosting mail for a custom domain does not necessarily apply its consumer signup rules to that domain.
Avoid maintaining a large provider-specific character blocklist (blacklist) in signup code. A slash can be RFC-valid and still fail account creation at a consumer provider. A plus tag can route correctly at Gmail or Exchange Online but fail in a third-party form that blocks plus signs. A Gmail dot variant can deliver to the same inbox while a custom domain treats dots normally. For the broader standard-versus-practice split, see RFC versus reality.

Why browser email validation differs from RFC 5322

An HTML input type="email" uses the HTML Standard email-field grammar rather than a complete RFC 5322 parser. It allows the unquoted atext symbols, including plus signs and apostrophes, but excludes quoted local parts. Its local-part grammar also permits period placement that RFC dot-atoms reject.

Address

RFC 5322 local part

HTML email-field grammar

first..last@example.com
Invalid dot-atom
Allowed by the grammar
"first last"@example.com
Valid quoted string
Rejected
Browser-field acceptance and RFC syntax are different checks
Browser acceptance does not establish RFC validity or mailbox existence. Validate again on the server. If quoted local parts or internationalized addresses are supported, ensure the form and downstream mail system can preserve them rather than relying on native email-field validation alone.

How to validate addresses in forms

For signup forms and list imports, use a layered approach. First, parse the address with a sensible RFC-compatible rule set. Next, reject structural errors such as a missing at sign, a missing domain, invalid domain labels, or misplaced periods. Send a verification message and require the user to complete a confirmation link or code before treating the address as verified.
  1. Do not block an RFC-valid address only because the local part looks unusual.
  2. Store the exact address entered, except for safe trimming around the full value.
  3. Require the recipient to complete a confirmation link or code instead of guessing which provider-specific patterns work.
  4. Track bounces and complaints after import, because syntax does not prove inbox ownership.
Suped's domain health checker helps inspect domain DNS and authentication configuration. For sending domains, DMARC monitoring shows authentication results reported by receiving providers. Neither check proves that an individual recipient mailbox exists.

Email tester

Send a real email to this address. Suped shows a results button when the test is ready.

?/43tests passed
The important design choice is to avoid turning provider quirks into universal truth. If a user enters name/surname@example.com, the slash is not a reason to reject it under RFC syntax. If a user enters first..last@example.com, the doubled period outside quotes is a structural problem. If a user enters first.last@gmail.com, stripping periods for every domain would be wrong, even though Gmail has dot-insensitive routing for standard gmail.com accounts.
Use Suped's email tester to inspect a test message's authentication results. Compare those results with the sending system's SMTP response or bounce message to separate sender-authentication problems from recipient-address errors.
Email tester sample report showing total score, email preview, issue summary, and per-section results
Email tester sample report showing total score, email preview, issue summary, and per-section results

Email validation rules to implement

Accept valid syntax, reject broken structure, then confirm mailbox access. This keeps a form compatible with legitimate addresses while still stopping obvious input errors.
Accept or allow through
  1. Letters, digits, and RFC 5322 atext specials inside unquoted atoms.
  2. Single separators between atoms, not the first or last local-part character.
  3. Valid syntax and common for mailbox filtering or signup tracking.
  4. Valid in the local part, including repeated hyphens such as abced--fetet.
Reject or review
  1. Reject leading, trailing, or doubled periods outside quoted strings.
  2. Reject unquoted spaces in the local part or domain.
  3. Reject invalid domain labels, empty labels, and labels with bad hyphen placement.
  4. Accept only when the complete mail and support flow can preserve them.
Validation gates
A practical model for deciding whether an address should pass a form, require verification, or be blocked.
Pass
Accept
RFC-valid ordinary address accepted into the confirmation flow.
Verify
Confirm
RFC-valid unusual local part that needs compatible application handling and confirmation.
Reject
Block
Broken syntax, missing domain, or invalid dot placement.
Review
Inspect
Bulk import patterns with high bounce or complaint rates.
Period placement deserves its own rule because it causes many false positives and false negatives. A dot before the at sign or a doubled dot in an unquoted local part is different from a provider refusing a slash during signup. The same distinction matters when troubleshooting misplaced periods in real delivery systems.

Quoted strings and other validation edge cases

Plus addressing is valid syntax and is supported by Gmail and Exchange Online. It is still provider behavior, not a universal routing rule. Some recipient systems route plus tags to the base mailbox, while business-domain administrators can disable or change the behavior. A third-party web form that blocks plus signs is stricter than the RFC and blocks real users. Exchange Online plus addresses are receive-only extensions rather than configured sending aliases.
Quoted local parts are valid in the standard but rare in consumer usage. An address such as "first last"@example.com has a quoted local part. Many web forms, CRM imports, exports, and support tools break when they see this pattern. If a product accepts quoted local parts, the complete pipeline needs to preserve them without stripping quotes or splitting on spaces. Inside a quoted local part, a literal double quote or backslash needs a preceding backslash. An at sign or comma inside those quotes is data, so splitting blindly on every at sign or comma breaks valid addresses.
Quoted local parts with reserved characters
"first..last"@example.com "first@last"@example.com "first,last"@example.com "first\"last"@example.com "first\\last"@example.com
Do not normalize too aggressively
Lowercasing the domain is safe. Lowercasing or rewriting the local part is not always safe because the receiving system owns local-part interpretation. RFC 5321 requires preserving local-part case: User@example.com and user@example.com are not guaranteed to identify the same mailbox.
  1. Apply Gmail dot logic only to standard gmail.com addresses, not every domain.
  2. Preserve plus tags in the delivery address. A separate deduplication key must not rewrite the stored destination.
  3. Treat local-part case carefully and keep the user's original value.
Internationalized email adds another layer. RFC 5322's base syntax is ASCII. Internationalized domains use IDNA and Punycode, while non-ASCII local parts require the SMTPUTF8 extension defined by RFC 6531. Punycode applies to the domain, not the local part. The application database and every SMTP hop carrying the internationalized address must support it. Test the complete route instead of relying on the input regex. For a broader structural checklist, use this guide to validate an email address.

Troubleshooting delivery after syntax validation

When a message fails after an address passes validation, inspect the delivery path. The problem can be a nonexistent mailbox, a mistyped domain, unusable mail routing, a provider-side policy block, an authentication failure, or sender reputation.
A missing MX record alone does not prove that a domain cannot receive mail. RFC 5321 specifies an implicit MX fallback to the domain itself when no MX records exist; delivery then depends on usable A or AAAA records and an SMTP server at that host.
Suped's DMARC reporting product helps review sending sources and SPF and DKIM authentication results. Compare those reports with SMTP bounce codes when delivery fails. Aggregate DMARC reports do not prove that a particular message reached an inbox or that a recipient address is valid.
For sender reputation checks, Suped's blocklist monitoring helps identify listed sending IPs or domains. A blocklist (blacklist) listing can contribute to rejection when the receiving provider uses that list, even if the recipient address has valid syntax.
Issues page showing top issues, verified sources, unverified sources, and authentication pass rates

Views from the trenches

Best practices
Use RFC-compatible parsing first, then require a confirmation link or code to verify access.
Keep provider-specific rules small, documented, and separate from syntax validation.
Store the address exactly as entered so replies and exports retain the original value.
Common pitfalls
Blocking all special characters rejects real addresses and creates avoidable sign-up loss.
Using Gmail dot handling for every domain causes duplicate and ownership problems.
SMTP acceptance proves server acceptance, not inbox placement or access to the mailbox.
Expert tips
Flag unusual RFC-valid addresses for verification instead of blocking them at entry.
Test quoted local parts across web forms, exports, CRM syncs, and support tooling.
Separate syntax failures, provider refusals, authentication issues, and reputation hits.

Expert view

Expert from Email Geeks says RFC 5322 allows the double hyphen example because hyphen is an atext character.
2024-03-19 - Email Geeks

Expert view

Expert from Email Geeks says provider acceptance is a second question after RFC syntax is established.
2024-03-19 - Email Geeks

Frequently asked questions

DMARC monitoring

Start monitoring your DMARC reports today

Suped DMARC platform dashboard
What you'll get with Suped
Real-time DMARC report monitoring and analysis
Automated alerts for authentication failures
Clear recommendations to improve email deliverability
Protection against phishing and domain spoofing