Yes. A hyphen is a valid character in an email address, in both the part before the @ symbol and the domain after it. If you’ve seen a signup form reject an address like jane-doe@example.com, that’s a bug in the form’s validation rules — not a problem with the address itself.

What Characters Are Actually Valid in an Email Address

The Local Part (Before the @)

The portion before the @ symbol can contain letters, digits, and several special characters, including the hyphen (-), underscore (_), plus sign (+), and period (.). Periods can’t appear at the very start or end, or two in a row — but a hyphen has no such restriction. Addresses like first-last@example.com or team-support@example.com are completely standard.

The Domain Part (After the @)

Domain names follow standard hostname rules: letters, digits, and hyphens are allowed within each part of the domain, but a hyphen can’t be the first or last character of a domain label (so example-.com or -example.com would be invalid, while my-company.com is fine).

Common Special Characters People Ask About

  • Hyphen (-) — valid anywhere in the local part, and within (but not at the edges of) each domain label. Common in names and company domains.
  • Plus sign (+) — valid, and widely used for inbox filtering (e.g., you+newsletters@example.com still delivers to you@example.com on most providers).
  • Underscore (_) — valid in the local part, not used in domain names.
  • Period (.) — valid in the local part with the restrictions noted above; also separates domain labels (example.com).

Why Syntax Being Valid Isn’t the Same as Being Deliverable

Here’s the part that actually matters for your list: an address can follow every formatting rule above and still not be a real, reachable mailbox. correct-format@example.com is syntactically perfect and could still be an address that was deleted years ago, or one that was never registered at all — syntax rules only confirm the address is well-formed, not that it exists.

That’s the gap email verification is built to close. Checking syntax is the first step, but confirming an address is actually reachable requires checking the domain’s mail servers and mailbox-level signals as well.

How Zuhal Checks Beyond Syntax

Zuhal validates syntax as the first check, then goes further — confirming the domain has valid mail servers (MX records), checking for disposable domains, and evaluating mailbox-level signals — before sorting each address into one of six categories: Valid, Invalid, Catch-all, Disposable, Risky, or Unknown. See what each of those categories means. This is also why a naive regex check in a signup form isn’t enough to keep a list clean — it can only catch malformed addresses like missing @ symbols, not dead or disposable ones that are perfectly well-formed.

For real-time syntax-and-deliverability checks at the point of signup, see the REST API documentation.

Verify beyond syntax — 100 free credits →

Ready to clean your email list?

Verify up to 100 emails free — no credit card required. Bulk lists, real-time API, instant results.

Get 100 Free Credits →