How Gmail answers a verification check
Gmail answers the RCPT TO command with a clear verdict. An existing account is accepted with 250 2.1.5. A missing one is refused with 550 5.1.1 and the words "The email account that you tried to reach does not exist". An inactive account gets 550 5.2.1, and a full inbox gets 452 4.2.2.
Because gmail.com never accepts mail for an address that does not exist, a Gmail check is as definitive as email verification gets. The hard part is not the answer, it is asking at a pace Gmail is happy with. Google rate limits senders it considers too fast with 421 4.7.28 ("Gmail has detected an unusual rate of email"), and those replies say nothing about the mailbox.
Gmail ignores dots in the local part and everything after a plus sign. j.doe@gmail.com, jdoe@gmail.com and jdoe+news@gmail.com all reach the same inbox.
Gmail replies and what RocketVerifier returns
Each SMTP reply maps to one status and sub-status. Replies about the probing server are never counted against the address.
| Reply | Result | What it means |
|---|---|---|
| 250 2.1.5 OK | deliverable none | The account exists and accepts mail. |
| 550 5.1.1 The email account that you tried to reach does not exist | undeliverable mailbox_not_found | No such account. Remove it from your list. |
| 550 5.2.1 The email account that you tried to reach is inactive | undeliverable account_disabled | The account exists but is inactive. Mail to it bounces. |
| 452 4.2.2 The recipient's inbox is out of storage space | risky mailbox_full | The mailbox exists but is full, often a sign it is abandoned. |
| 450 4.2.1 The user you are trying to contact is receiving email too quickly | unknown greylisted | A per-recipient rate limit. Retried automatically. |
| 421 4.7.28 Gmail has detected an unusual rate of email | unknown blocked | About the sending IP, never the mailbox. Not charged. |
What RocketVerifier does differently for Gmail
-
Google's reply dialect, built in
The engine has Google-specific rules: 4.7.28 and 4.7.0 are rate limits, 4.2.1 is a per-recipient deferral, 5.2.1 is an inactive account. Generic parsers file several of these as invalid.
-
A rate budget just for Google
Every verification IP has its own per-minute, per-hour and per-day budget for Google, with paced commands and automatic back-off after a deferral, so Gmail keeps answering.
-
Typos caught before the check
gmial.com, gamil.com, gmail.con and dozens of other slips are flagged as possible_typo with the corrected address in did_you_mean.
-
Plus addresses recognised
jdoe+news@gmail.com is returned as deliverable with the alias sub-status, so you can see tagged signups at a glance.
-
A block is never a bad address
Replies about the probing IP, rate or policy are returned as unknown with the blocked sub-status and never charged. Only an explicit mailbox answer becomes deliverable or undeliverable.
-
No email is ever sent
The SMTP conversation stops at RCPT TO, before DATA. Your recipients never see a probe.
Sending to Gmail: what to get right
- Deduplicate Gmail addresses on the local part without dots and without the plus tag before you import, so one person does not get three copies.
- If you send 5,000 or more messages a day to personal Gmail accounts, Google requires SPF, DKIM, DMARC alignment, one-click unsubscribe and a spam rate below 0.3%.
- Do not send bulk mail with a gmail.com From address through another service. Use a domain you control and can authenticate.
Keep reading
Sources
- Google Workspace: Gmail SMTP errors and codes
- Google: Email sender guidelines
- Google: Email sender guidelines FAQ
Last reviewed