Understanding Results

Learn what each validation status means and how to interpret MailCop's email validation results.

Understanding Validation Results

After MailCop validates an email address, you’ll receive a clear status indicating whether it’s safe to send to. Here’s what each result means and how to act on it.

Email Statuses

Good ✓

The email address is valid and deliverable. Our checks confirmed:

  • The email format is correct
  • The domain exists and has mail servers
  • (For SMTP validation) The specific mailbox exists

Action: Safe to include in your campaigns.

Bad ✗

The email address has problems and will likely bounce. Common reasons include:

  • Invalid email format (missing @ symbol, typos)
  • Domain doesn’t exist
  • Domain has no mail servers configured
  • (For SMTP validation) The specific mailbox doesn’t exist
  • Address matched one of your filters

Action: Remove from your list. Sending to these addresses will hurt your sender reputation.

Pending ⏳

The email is still being validated. This status is temporary and will change to Good or Bad once processing completes.

Action: Wait for validation to complete.


API Response Fields

When using the API, you’ll receive detailed information about each validation:

{
  "email": "[email protected]",
  "status": "good",
  "validation_type": "smtp",
  "role_account": false,
  "free_provider": false,
  "catch_all_domain": null,
  "result": {
    "domain": "example.com",
    "checks": { "filter": "pass", "disposable": "pass", "format": "pass", "mx": "pass", "smtp": "pass" },
    "smtp": null
  },
  "credits_used": 10
}

Response fields explained

Field Description
email The email address that was validated
status Result: good, bad, or pending
validation_type Method used: mx or smtp
credits_used Number of credits charged
reason Why it failed, as readable text (only for bad emails)
reason_code Why it failed, as a stable code (only for bad emails)
result.checks Which checks passed, failed or were skipped
role_account Address is a role mailbox like info@
free_provider Address is on a free provider like Gmail
catch_all_domain The domain accepts any mailbox, so a good result cannot confirm this one exists (when requested)

See the Verify Endpoint for every field.


Failure Reasons

When an email is marked as bad, the reason_code field explains why:

reason_code Meaning
invalid_format Email doesn’t match proper format
no_mx_records Domain doesn’t exist or has no mail server configured
mailbox_not_found Specific email address doesn’t exist (SMTP only)
mailbox_full Recipient’s mailbox is full (SMTP only)
smtp_rejected Mail server refused the check (SMTP only)
smtp_unreachable Mail server could not be reached (SMTP only)
blocked_by_filter Matched one of your blocklist filters
disposable_domain Domain is a known temporary email service
validation_failed Bulk lists only: validation errored repeatedly and the email was marked bad

Interpreting Results for Your Use Case

For email marketing

Focus on the good emails only. Even a small percentage of bad emails can:

  • Increase bounce rates
  • Damage sender reputation
  • Get you flagged by email providers

Recommended: Download the “Good emails only” export and use that for your campaign.

For signup forms

Use real-time API validation to catch bad emails before they enter your system:

// Example: Validate on form submit
const result = await validateEmail(userEmail);
if (result.status === 'bad') {
  showError('Please enter a valid email address');
}

For CRM hygiene

Regularly validate your contact database to:

  • Remove addresses that have gone stale
  • Identify domains that no longer exist
  • Clean up typos and formatting issues

Accuracy Expectations

No email validation is 100% accurate. Here’s what to expect:

MX Validation accuracy

  • Catches: Invalid formats, non-existent domains, missing mail servers
  • Misses: Individual mailbox issues, full inboxes, disabled accounts
  • Typical accuracy: 85-90% of bad emails detected

SMTP Validation accuracy

  • Catches: All of the above, plus non-existent mailboxes
  • Misses: Catch-all servers (accept any address), temporary issues
  • Typical accuracy: 95-98% of bad emails detected

Why 100% isn’t possible

Some mail servers are configured to accept all addresses (catch-all). Others temporarily go offline. And email addresses can become invalid after validation. For best results:

  1. Validate close to when you’ll send
  2. Use SMTP validation for important campaigns
  3. Monitor your actual bounce rates and re-validate periodically

Working with Filtered Emails

If you’ve set up filters, some emails may be marked as bad because they matched your blocklist rather than failing validation.

The reason field will show blocked_by_filter for these addresses. This helps you:

  • See which of your filters are being triggered
  • Identify patterns you might want to block
  • Audit your filtering rules

Next Steps