Unusual email addresses
Sign-up forms often turn away addresses that are perfectly valid, like a plus sign or an apostrophe, or let through ones that can never receive mail. Every Proxy Mail QA address comes with variants that still land in its inbox, so you can check both.
The examples below use the test address k7f2x9ab12cd@mailclub.dev. Swap in your own.
Variants that reach your inbox
Section titled “Variants that reach your inbox”Mail to any of these arrives in the same inbox as the plain address. Checked against our mail servers on 15 October 2026.
| What it tests | Address |
|---|---|
| Capitals | K7F2X9AB12CD@MAILCLUB.DEV |
| A plus tag | k7f2x9ab12cd+signup@mailclub.dev |
| An apostrophe | k7f2x9ab12cd+o'brien@mailclub.dev |
| An ampersand | k7f2x9ab12cd+r&d@mailclub.dev |
| Equals and question marks | k7f2x9ab12cd+a=b?c@mailclub.dev |
| A slash and a percent sign | k7f2x9ab12cd+team/50%@mailclub.dev |
| Braces, pipes and tildes | k7f2x9ab12cd+{x}|~y@mailclub.dev |
| Dots inside the name | k7f2x9ab12cd+first.last@mailclub.dev |
| A second plus sign | k7f2x9ab12cd+a+b@mailclub.dev |
| The longest name allowed (64 characters before the @) | k7f2x9ab12cd+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@mailclub.dev |
After the +, you can use letters, digits and any of ! # $ % & ' * + - / = ? ^ _ ` { | } ~ and dots (not two in a row, and not at the end). The text after the + shows on each email in the inbox, so you can tell which variant a message was sent to.
A custom address name (Add account → Custom name, or name in the API) can use the same characters, anywhere in the name and up to 64 in all: o'brien@mailclub.dev, r&d.team@mailclub.dev or {qa}@mailclub.dev. Only + is left out, because it starts a tag.
Valid, but no inbox can take them here
Section titled “Valid, but no inbox can take them here”The email standard allows these, but our mail servers (and most others) don’t accept them, so mail sent to them is refused before it arrives. They’re useful for checking what your app does when delivery fails.
| What it tests | Example |
|---|---|
| A quoted name with a space | "john doe"@mailclub.dev |
| A name that isn’t in Latin letters | josé@mailclub.dev, 用户@mailclub.dev |
| A domain with no dot, which only works inside a private network | k7f2x9ab12cd@mailclub |
| 65 characters or more before the @ | k7f2x9ab12cd+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@mailclub.dev |
Invalid addresses
Section titled “Invalid addresses”Your app should reject these before it tries to send anything. They need no inbox.
| What’s wrong | Example |
|---|---|
| No @ | k7f2x9ab12cd.mailclub.dev |
| Nothing before the @ | @mailclub.dev |
| Nothing after the @ | k7f2x9ab12cd@ |
| Two @ signs | k7f2@x9@mailclub.dev |
| A space | k7f2 x9@mailclub.dev |
| A dot at the start or end of the name | .k7f2@mailclub.dev, k7f2.@mailclub.dev |
| Two dots in a row | k7f2..x9@mailclub.dev |
| Two dots in the domain | k7f2x9ab12cd@mailclub..dev |
| A domain starting with a hyphen | k7f2x9ab12cd@-mailclub.dev |
| Angle brackets or a comma | <k7f2>@mailclub.dev, k7f2,x9@mailclub.dev |
With the API or an agent
Section titled “With the API or an agent”The REST API and MCP tools take a variant wherever they take an address, and act on the plain one. Waiting on a variant with a +tag only finds mail sent to that variant; waiting on the plain address finds mail sent to any of them. Pass since (the time your test submitted the form) as usual.
GET /v1/addresses/{address}/variants lists all of the above for one of your addresses: delivered, undeliverable and invalid, each with what it tests. See the REST API reference.
When an address goes in a URL path, encode it: encodeURIComponent in JavaScript turns ' into %27, + into %2B, / into %2F and ? into %3F.
A coding agent can make the variants itself from the table above: ask it to “try signing up with an apostrophe and a plus tag in the email address, and check the code still arrives”.