Soenneker.Validators.Gmail.Exists
4.0.1838
Prefix Reserved
dotnet add package Soenneker.Validators.Gmail.Exists --version 4.0.1838
NuGet\Install-Package Soenneker.Validators.Gmail.Exists -Version 4.0.1838
<PackageReference Include="Soenneker.Validators.Gmail.Exists" Version="4.0.1838" />
<PackageVersion Include="Soenneker.Validators.Gmail.Exists" Version="4.0.1838" />
<PackageReference Include="Soenneker.Validators.Gmail.Exists" />
paket add Soenneker.Validators.Gmail.Exists --version 4.0.1838
#r "nuget: Soenneker.Validators.Gmail.Exists, 4.0.1838"
#:package Soenneker.Validators.Gmail.Exists@4.0.1838
#addin nuget:?package=Soenneker.Validators.Gmail.Exists&version=4.0.1838
#tool nuget:?package=Soenneker.Validators.Gmail.Exists&version=4.0.1838
Soenneker.Validators.Gmail.Exists
Applies a Google Calendar response-header heuristic that may indicate whether a Gmail address has an account.
Install
dotnet add package Soenneker.Validators.Gmail.Exists
Registration
using Soenneker.Validators.Gmail.Exists.Registrars;
using Microsoft.Extensions.DependencyInjection;
services.AddGmailExistsValidatorAsSingleton();
Scoped registration is also available. Both registrations reuse singleton HTTP-client-cache and rate-limiter-factory services. Disposing a scoped validator does not evict or dispose the shared named HTTP client.
Configure request spacing
{
"GmailExistsValidator": {
"IntervalMs": 3000
}
}
The default interval is 3,000 milliseconds. EmailExists routes calls through a shared named rate limiter using this interval.
Check an address
using Soenneker.Validators.Gmail.Exists.Abstract;
bool? result = await validator.EmailExists(
"person@gmail.com",
cancellationToken);
The address is escaped as one URL path component and sent to Google's public Calendar ICS endpoint. The response is considered a positive match only when an X-Frame-Options header value equals SAMEORIGIN, ignoring case.
Results are:
true: the response contained the expected header value;false: the request completed but the response did not contain that value;null:HttpClientraisedHttpRequestException.
Cancellation propagates as OperationCanceledException. The method does not validate email syntax or require a Gmail domain before sending the request.
EmailExistsWithoutLimit performs the same request without the local rate limiter. It does not bypass Google's limits and should be reserved for callers that already coordinate request pacing.
Reliability and privacy
This is an undocumented response heuristic, not an account-verification API. Google can change the endpoint or headers at any time, and positive or negative results may be wrong. Do not use it as proof of mailbox ownership, as an authentication factor, or as the sole reason to accept or reject a user. Verification email remains the reliable ownership check.
The queried address is disclosed to Google in the request URL. It is no longer included in this validator's logs, but it may still appear in upstream HTTP infrastructure or Google's logs. Ensure that use is compatible with your privacy requirements and provider terms.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Soenneker.Extensions.Configuration (>= 4.0.875)
- Soenneker.Utils.HttpClientCache (>= 4.0.2061)
- Soenneker.Utils.RateLimiting.Factory (>= 4.0.1171)
- Soenneker.Validators.Validator (>= 4.0.738)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.1838 | 40 | 9/5/2026 |
| 4.0.1837 | 41 | 9/5/2026 |
| 4.0.1835 | 39 | 9/4/2026 |
| 4.0.1834 | 38 | 9/4/2026 |
| 4.0.1833 | 41 | 9/4/2026 |
| 4.0.1832 | 41 | 9/4/2026 |
| 4.0.1829 | 45 | 9/4/2026 |
| 4.0.1828 | 46 | 9/3/2026 |
| 4.0.1827 | 92 | 9/1/2026 |
| 4.0.1826 | 69 | 9/1/2026 |
| 4.0.1825 | 63 | 9/1/2026 |
| 4.0.1824 | 86 | 8/31/2026 |
| 4.0.1822 | 78 | 8/31/2026 |
| 4.0.1821 | 81 | 8/31/2026 |
| 4.0.1820 | 74 | 8/31/2026 |
| 4.0.1819 | 81 | 8/31/2026 |
| 4.0.1817 | 89 | 8/31/2026 |
| 4.0.1815 | 87 | 8/31/2026 |
| 4.0.1814 | 93 | 8/31/2026 |
| 4.0.1813 | 86 | 8/30/2026 |
Update dependency Soenneker.Utils.HttpClientCache to 4.0.2061 (#2343)