Here's the handshake your code would run. Look up the MX record for gmail.com, open a connection on port 25, send EHLO and MAIL FROM, then name the address in RCPT TO. Read the reply code and send QUIT. Your script never sends the DATA command, so no message goes out and the owner sees nothing.
Scripts like this break in two places. Most residential ISPs and many cloud providers block outbound port 25, so your laptop or your cloud function often can't connect at all. When the connection does open from a cloud IP, Gmail blocks the probe. You'll see timeouts and refusals, and a naive script reads those as "doesn't exist", which throws away real addresses.
Forum answers that poke at Google's sign-in or account recovery pages aren't a verification method. Those pages exist for account owners, they change without notice, and hammering them can get your IP flagged. The mail server's reply at RCPT TO is the only signal built for this question.
The API route is one call. Send the address to POST /v1/verify, and ZapBounce runs its own SMTP check on port 25 and returns valid, invalid, catch_all or unknown. The response carries the literal smtp_code so you can audit the reading, and free_provider is true for gmail.com. The Python and Node.js pages show the request.
When Gmail won't give a straight answer, ZapBounce returns unknown with a reason such as probe_blocked or throttled, and the check isn't billed. You pay $5 for 1,000 checks on the rest, and credits never expire. The Gmail provider page covers how Gmail treats verification traffic in more detail.
Related questions
Does checking if a Gmail address exists send an email?
No. The check stops after RCPT TO and closes before the DATA command, so no message is sent. The account owner gets no notification of any kind.
Why does my Python SMTP script time out on Gmail?
Outbound port 25 is blocked by most residential ISPs and many cloud providers, and Gmail blocks SMTP probes from cloud IPs. Either one leaves your script waiting for a reply. A verification API runs the check on port 25 from its own infrastructure and returns a result.
What does a 550 reply from Gmail mean?
A 550 at the RCPT TO step means Gmail has no mailbox by that name. ZapBounce reports it as invalid with the reason mailbox_not_found. Remove the address before your next send.
Can I check thousands of Gmail addresses at once?
Yes. Upload a CSV to bulk verification or send a batch through the API. ZapBounce charges $25 for 10,000 checks and never bills unknown results or duplicates.