Azimzada.EmailMxValidator 1.0.0

dotnet add package Azimzada.EmailMxValidator --version 1.0.0
                    
NuGet\Install-Package Azimzada.EmailMxValidator -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Azimzada.EmailMxValidator" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Azimzada.EmailMxValidator" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Azimzada.EmailMxValidator" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Azimzada.EmailMxValidator --version 1.0.0
                    
#r "nuget: Azimzada.EmailMxValidator, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Azimzada.EmailMxValidator@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Azimzada.EmailMxValidator&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Azimzada.EmailMxValidator&version=1.0.0
                    
Install as a Cake Tool

Azimzada.EmailMxValidator

A comprehensive email validation library for .NET that performs multiple checks to validate email addresses:

  • Email syntax validation using regex
  • Domain existence check
  • MX record verification
  • SPF record verification
  • Disposable email domain detection

Installation

Install the package via NuGet:

dotnet add package Azimzada.EmailMxValidator

Usage

using Azimzada.EmailMxValidator;

// Create validator instance
var validator = new EmailValidator();

// Validate an email address
var result = await validator.ValidateAsync("example@domain.com");

// Check validation results
if (result.IsValid)
{
    Console.WriteLine("Email is valid!");
}
else
{
    Console.WriteLine($"Email validation failed:");
    Console.WriteLine($"- Syntax valid: {result.IsSyntaxValid}");
    Console.WriteLine($"- Domain exists: {result.DomainExists}");
    Console.WriteLine($"- Has MX record: {result.HasMxRecord}");
    Console.WriteLine($"- Has SPF record: {result.HasSpfRecord}");
    Console.WriteLine($"- Is disposable: {result.IsDisposableEmail}");
}

Validation Properties

The EmailValidationResult class provides the following properties:

  • IsSyntaxValid: Whether the email address follows correct syntax
  • DomainExists: Whether the email domain exists (has A or MX records)
  • HasMxRecord: Whether the domain has MX records configured
  • HasSpfRecord: Whether the domain has SPF records configured
  • IsDisposableEmail: Whether the domain is a known disposable email service
  • IsValid: Convenience property that checks if email is valid based on syntax, domain existence and MX records

Features

  • Asynchronous validation for better performance
  • Parallel DNS checks
  • Built-in list of disposable email domains
  • XML documentation for better IntelliSense support
  • Configurable DNS client with caching and retries
  • MIT licensed

Requirements

  • .NET 8.0 or higher

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Azimzada.EmailMxValidator

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.