Skip to content

Validation Checks

Spamidate performs up to 18 validation checks on each email. This document explains what each check does and how to interpret results.

Every check returns a consistent structure:

{
"check": "syntax",
"passed": true,
"status": "pass",
"category": "syntax",
"reason": "Email syntax is valid (RFC 5322 compliant)",
"action": "allow",
"confidence": 100,
"metadata": {}
}
FieldDescription
checkCheck identifier
passedWhether this check passed
statuspass, fail, warn, skip, or error
categoryGrouping: syntax, domain, mailbox, reputation, quality, security
reasonHuman-readable explanation
actionRecommended: allow, block, flag, review
confidenceCertainty level (0-100)
metadataAdditional check-specific data
StatusMeaningScore Impact
passNo issues foundNeutral/positive
failBlocking issueNegative
warnConcern, not blockingMinor negative
skipCheck skippedNone
errorCheck failedNone

All Tiers

Validates email format against RFC 5322.

Checks:

  • Valid local part (before @)
  • Valid domain part (after @)
  • Allowed characters
  • Length limits (local: 64, domain: 255, total: 254)
  • No consecutive/leading/trailing dots
{
"check": "syntax",
"passed": true,
"status": "pass",
"category": "syntax",
"reason": "Email syntax is valid (RFC 5322 compliant)",
"confidence": 100
}

All Tiers

Verifies the domain exists via DNS lookup.

{
"check": "domain",
"passed": true,
"status": "pass",
"category": "domain",
"reason": "Domain exists and resolves",
"confidence": 100,
"metadata": {
"hasA": true,
"hasAAAA": true
}
}

All Tiers

Checks for valid MX (Mail Exchange) records.

{
"check": "mxRecords",
"passed": true,
"status": "pass",
"category": "domain",
"reason": "Found 5 MX records",
"confidence": 100,
"metadata": {
"mxRecords": ["mx1.example.com", "mx2.example.com"],
"primaryMx": "mx1.example.com",
"mxCount": 5
}
}

All Tiers

Detects temporary/disposable email providers.

{
"check": "disposable",
"passed": false,
"status": "fail",
"category": "reputation",
"reason": "Disposable email provider detected (mailinator.com)",
"action": "block",
"confidence": 99,
"metadata": {
"provider": "mailinator.com",
"isDisposable": true
}
}

Common providers detected: mailinator.com, tempmail.com, guerrillamail.com, 10minutemail.com


All Tiers

Identifies role-based/generic addresses (info@, support@, admin@).

Risk Levels:

LevelExamplesRecommendation
highabuse@, postmaster@, noreply@Block for marketing
mediuminfo@, support@, sales@Use with caution
lowcontact@, hello@Generally OK
{
"check": "roleBased",
"passed": false,
"status": "warn",
"category": "quality",
"reason": "Role-based email address (support@)",
"action": "flag",
"confidence": 95,
"metadata": {
"isRoleBased": true,
"roleType": "support",
"riskLevel": "medium"
}
}

All Tiers

Detects catch-all domains that accept any address.

{
"check": "catchAll",
"passed": false,
"status": "warn",
"category": "quality",
"reason": "Domain accepts all email addresses (catch-all)",
"action": "flag",
"confidence": 85,
"metadata": {
"isCatchAll": true
}
}

Hobby+

Detects common typos and suggests corrections.

{
"check": "typoSuggestion",
"passed": false,
"status": "warn",
"category": "quality",
"reason": "Possible typo detected: gmial.com → gmail.com",
"action": "review",
"confidence": 95,
"metadata": {
"hasTypo": true,
"originalDomain": "gmial.com",
"suggestion": "gmail.com"
}
}

Common corrections:

  • gmial.com → gmail.com
  • hotmal.com → hotmail.com
  • yaho.com → yahoo.com
  • outloo.com → outlook.com

Hobby+

Identifies free email providers (Gmail, Yahoo, Outlook).

{
"check": "freeEmail",
"passed": true,
"status": "warn",
"category": "quality",
"reason": "Free email provider (gmail.com)",
"action": "allow",
"confidence": 100,
"metadata": {
"isFreeEmail": true,
"provider": "Google",
"providerName": "Gmail"
}
}

Pro+

Detects known and suspected spam trap addresses.

Risk LevelDescriptionAction
criticalConfirmed spam trapBlock
highLikely spam trapAvoid
mediumPossible spam trapCaution
safeNo indicatorsAllow
{
"check": "spamTrap",
"passed": false,
"status": "fail",
"category": "reputation",
"reason": "High probability spam trap detected",
"action": "block",
"confidence": 88,
"metadata": {
"isSpamTrap": true,
"riskLevel": "high",
"indicators": ["recycled-domain", "honeypot-pattern"]
}
}

Pro+

Checks domain email authentication (SPF, DKIM, DMARC).

{
"check": "emailAuthentication",
"passed": true,
"status": "pass",
"category": "security",
"reason": "Strong email authentication (SPF + DKIM + DMARC)",
"confidence": 95,
"metadata": {
"spf": { "exists": true, "policy": "-all" },
"dkim": { "exists": true },
"dmarc": { "exists": true, "policy": "reject" }
}
}

Pro+

Checks domain against email blacklists.

{
"check": "blacklist",
"passed": false,
"status": "fail",
"category": "reputation",
"reason": "Domain found on 3 blacklists",
"action": "block",
"confidence": 92,
"metadata": {
"isBlacklisted": true,
"totalListed": 3,
"riskScore": 75
}
}

Pro+

Evaluates overall domain trustworthiness.

Factors: Domain age, SSL certificate, WHOIS privacy, historical reputation

{
"check": "domainTrust",
"passed": true,
"status": "pass",
"category": "security",
"reason": "High trust domain (established, valid SSL)",
"confidence": 88,
"metadata": {
"trustLevel": "high",
"domainAge": 3650,
"hasSSL": true
}
}

Pro+

AI-powered fraud pattern detection.

{
"check": "fraudDetection",
"passed": false,
"status": "fail",
"category": "security",
"reason": "Multiple fraud indicators detected",
"action": "block",
"confidence": 82,
"metadata": {
"fraudScore": 75,
"riskLevel": "high",
"patterns": [
{ "pattern": "keyboard-walk", "severity": "medium" },
{ "pattern": "suspicious-tld", "severity": "high" }
]
}
}

Business+

Direct SMTP mailbox verification.

{
"check": "smtpVerification",
"passed": true,
"status": "pass",
"category": "mailbox",
"reason": "Mailbox exists and accepts mail",
"confidence": 90,
"metadata": {
"mailboxExists": true,
"isGreylisted": false
}
}

Growth+

Identifies corporate/business email domains.

{
"check": "corporateEmail",
"passed": true,
"status": "pass",
"category": "quality",
"reason": "Corporate email domain (Microsoft 365)",
"confidence": 95,
"metadata": {
"isCorporate": true,
"provider": "microsoft365",
"companyDomain": "acme.com"
}
}

Growth+

Identifies the email infrastructure provider.

{
"check": "mailboxProvider",
"passed": true,
"status": "pass",
"category": "quality",
"reason": "Google Workspace detected",
"confidence": 98,
"metadata": {
"provider": "Google Workspace",
"infrastructure": "google_workspace"
}
}

CheckFreeHobbyGrowthProBusinessEnterprise
syntax
domain
mxRecords
disposable
roleBased
catchAll-
typoSuggestion-
freeEmail-
spamTrap---
emailAuthentication---
blacklist---
domainTrust---
fraudDetection---
corporateEmail--
mailboxProvider--
smtpVerification----

CheckPassFail Impact
syntax0-100 (invalid)
domain0-80 to -90
mxRecords0-70 to -80
disposable0-30 to -50
spamTrap (critical)0-60
roleBased (high)0-40
typoSuggestion0-15 to -35
catchAll0-15
blacklist0-70
fraudDetection0-40 to -60
emailAuthentication+10-10
domainTrust+10-15
corporateEmail+10-5