Soenneker.Data.Email.Disposables
4.0.1062
Prefix Reserved
dotnet add package Soenneker.Data.Email.Disposables --version 4.0.1062
NuGet\Install-Package Soenneker.Data.Email.Disposables -Version 4.0.1062
<PackageReference Include="Soenneker.Data.Email.Disposables" Version="4.0.1062" />
<PackageVersion Include="Soenneker.Data.Email.Disposables" Version="4.0.1062" />
<PackageReference Include="Soenneker.Data.Email.Disposables" />
paket add Soenneker.Data.Email.Disposables --version 4.0.1062
#r "nuget: Soenneker.Data.Email.Disposables, 4.0.1062"
#:package Soenneker.Data.Email.Disposables@4.0.1062
#addin nuget:?package=Soenneker.Data.Email.Disposables&version=4.0.1062
#tool nuget:?package=Soenneker.Data.Email.Disposables&version=4.0.1062
Soenneker.Data.Email.Disposables
A packaged newline-delimited list of domains associated with disposable or temporary email services.
Installation
dotnet add package Soenneker.Data.Email.Disposables
The package copies this file to the consuming application's output directory:
Resources/data-email-disposables.txt
It contains one domain per line. The package provides data only—there is no service, parser, validator, or dependency-injection registration.
Load the domain set
string path = Path.Combine(
AppContext.BaseDirectory,
"Resources",
"data-email-disposables.txt");
HashSet<string> disposableDomains = File.ReadLines(path)
.Select(static line => line.Trim())
.Where(static line => line.Length > 0)
.ToHashSet(StringComparer.OrdinalIgnoreCase);
Then compare a normalized domain, not the complete email address:
string domain = "mailinator.com";
bool isDisposable = disposableDomains.Contains(domain.TrimEnd('.'));
Parse and validate email addresses before extracting their domain. Convert internationalized domain names to their ASCII/Punycode form when required by your input pipeline, and remove a terminal DNS dot before lookup.
Operational guidance
The list is a snapshot shipped with the installed package version. Updating the NuGet package updates the output asset; an already deployed application does not download list changes at runtime.
Domain-list matching is heuristic. Providers appear, disappear, and change ownership, and legitimate domains can be listed accidentally. Use the result as one abuse signal rather than the sole reason to reject an account. Consider an override list and log decisions so false positives can be corrected.
Loading the file into a case-insensitive HashSet<string> provides fast repeated lookup at the cost of retaining the complete list in memory. For occasional checks, scanning the file or using a different indexed store may be more appropriate.
| 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
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Soenneker.Data.Email.Disposables:
| Package | Downloads |
|---|---|
|
Soenneker.Validators.Email.Disposable
Checks whether an email address uses a disposable or temporary domain. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.0.1062 | 0 | 9/7/2026 |
| 4.0.1061 | 55 | 9/6/2026 |
| 4.0.1060 | 65 | 9/5/2026 |
| 4.0.1059 | 96 | 9/4/2026 |
| 4.0.1058 | 117 | 9/3/2026 |
| 4.0.1057 | 96 | 9/2/2026 |
| 4.0.1056 | 74 | 9/1/2026 |
| 4.0.1055 | 99 | 8/31/2026 |
| 4.0.1054 | 270 | 8/30/2026 |
| 4.0.1053 | 168 | 8/29/2026 |
| 4.0.1052 | 153 | 8/29/2026 |
| 4.0.1051 | 118 | 8/28/2026 |
| 4.0.1049 | 222 | 8/25/2026 |
| 4.0.1048 | 98 | 8/24/2026 |
| 4.0.1047 | 113 | 8/23/2026 |
| 4.0.1046 | 129 | 8/22/2026 |
| 4.0.1045 | 292 | 8/21/2026 |
| 4.0.1044 | 187 | 8/20/2026 |
| 4.0.1043 | 140 | 8/19/2026 |
| 4.0.1042 | 157 | 8/18/2026 |