Validation Checks
Spamidate performs up to 18 validation checks on each email. This document explains what each check does and how to interpret results.
Check Response Structure
Section titled “Check Response Structure”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": {}}| Field | Description |
|---|---|
check | Check identifier |
passed | Whether this check passed |
status | pass, fail, warn, skip, or error |
category | Grouping: syntax, domain, mailbox, reputation, quality, security |
reason | Human-readable explanation |
action | Recommended: allow, block, flag, review |
confidence | Certainty level (0-100) |
metadata | Additional check-specific data |
Status Values
Section titled “Status Values”| Status | Meaning | Score Impact |
|---|---|---|
pass | No issues found | Neutral/positive |
fail | Blocking issue | Negative |
warn | Concern, not blocking | Minor negative |
skip | Check skipped | None |
error | Check failed | None |
Core Checks (All Tiers)
Section titled “Core Checks (All Tiers)”syntax
Section titled “syntax”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}domain
Section titled “domain”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 }}mxRecords
Section titled “mxRecords”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 }}disposable
Section titled “disposable”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
roleBased
Section titled “roleBased”Identifies role-based/generic addresses (info@, support@, admin@).
Risk Levels:
| Level | Examples | Recommendation |
|---|---|---|
high | abuse@, postmaster@, noreply@ | Block for marketing |
medium | info@, support@, sales@ | Use with caution |
low | contact@, 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" }}catchAll
Section titled “catchAll”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 }}typoSuggestion
Section titled “typoSuggestion”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
freeEmail
Section titled “freeEmail”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" }}Advanced Checks (Pro+)
Section titled “Advanced Checks (Pro+)”spamTrap
Section titled “spamTrap”Detects known and suspected spam trap addresses.
| Risk Level | Description | Action |
|---|---|---|
critical | Confirmed spam trap | Block |
high | Likely spam trap | Avoid |
medium | Possible spam trap | Caution |
safe | No indicators | Allow |
{ "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"] }}emailAuthentication
Section titled “emailAuthentication”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" } }}blacklist
Section titled “blacklist”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 }}domainTrust
Section titled “domainTrust”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 }}fraudDetection
Section titled “fraudDetection”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" } ] }}Enterprise Checks
Section titled “Enterprise Checks”smtpVerification
Section titled “smtpVerification”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 }}corporateEmail
Section titled “corporateEmail”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" }}mailboxProvider
Section titled “mailboxProvider”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" }}Check Availability by Tier
Section titled “Check Availability by Tier”| Check | Free | Hobby | Growth | Pro | Business | Enterprise |
|---|---|---|---|---|---|---|
| syntax | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| domain | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| mxRecords | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| disposable | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| roleBased | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| catchAll | - | ✓ | ✓ | ✓ | ✓ | ✓ |
| typoSuggestion | - | ✓ | ✓ | ✓ | ✓ | ✓ |
| freeEmail | - | ✓ | ✓ | ✓ | ✓ | ✓ |
| spamTrap | - | - | - | ✓ | ✓ | ✓ |
| emailAuthentication | - | - | - | ✓ | ✓ | ✓ |
| blacklist | - | - | - | ✓ | ✓ | ✓ |
| domainTrust | - | - | - | ✓ | ✓ | ✓ |
| fraudDetection | - | - | - | ✓ | ✓ | ✓ |
| corporateEmail | - | - | ✓ | ✓ | ✓ | ✓ |
| mailboxProvider | - | - | ✓ | ✓ | ✓ | ✓ |
| smtpVerification | - | - | - | - | ✓ | ✓ |
Score Impact
Section titled “Score Impact”| Check | Pass | Fail Impact |
|---|---|---|
| syntax | 0 | -100 (invalid) |
| domain | 0 | -80 to -90 |
| mxRecords | 0 | -70 to -80 |
| disposable | 0 | -30 to -50 |
| spamTrap (critical) | 0 | -60 |
| roleBased (high) | 0 | -40 |
| typoSuggestion | 0 | -15 to -35 |
| catchAll | 0 | -15 |
| blacklist | 0 | -70 |
| fraudDetection | 0 | -40 to -60 |
| emailAuthentication | +10 | -10 |
| domainTrust | +10 | -15 |
| corporateEmail | +10 | -5 |