Skip to Content
Advanced Email Validator all-in-one
Advanced Email Validator all-in-one

Advanced Email Validator all-in-one

by Kitworks Systems
FREE
Odoo Apps Dependencies contacts, crm, event, hr, hr_recruitment, mass_mailing, web
Community Apps Dependencies
Technical Name kw_email_validation_bundle
License LGPL-3
Website https://kitworks.systems/
Versions 16.0 17.0 18.0 19.0

Why this suite

Four-stage pipeline

Regexp, DNS, SMTP and API. Configurable order with early-exit on first failure.

8 API providers

NeverBounce, ZeroBounce, Clearout, MailerCheck, Mailgun, SendPulse, MillionVerifier, QuickEmailVerification.

9 integrations

Contacts, CRM, HR, HR Recruitment, Events, Mass Mailing, plus SMTP, DNS and Web.

Rule-based priority

Each validator has a sequence. Cheap local checks first, paid APIs last. Per-domain override supported.

Visual status indicators

Color-coded badges in every list, form and kanban view. Valid (green), Invalid (red), Pending (amber).

Zero extra dependencies

Base depends only on web. Works on Community, Enterprise and Odoo.sh.

See it in action

Validation status appears next to every email address across Contacts, CRM, HR, Recruitment, Events and Mass Mailing.

Email validation badges in the Contacts list

Customers list with the Validation state column showing Valid and Invalid badges per record.

Email validation badges in the CRM leads list

Leads list — bad-email leads are flagged before they reach a salesperson.

Email validation badges in the candidates list

Candidate pipeline grouped by stage with the validation status visible per applicant.

Email validation badges in the Employees list

Employee directory with validated work_email addresses.

Email validation badges in the Event registrations list

Registrations list — attendees with bad addresses surface before invitations are sent.

Email validation badges in the Mailing List Contacts list

Mailing list contacts — clean lists cut bounces before send.

Email validators registry with 11 configured validators

Configuration of validators — local checks and 8 API providers, all in one registry.

Documentation

How validation works

Every email address passes through a configurable pipeline. Validators run in sequence; the first one to determine the address as invalid stops the chain. Successful checks accumulate evidence until a final state is reached.

  • Stage 1 — Regexp. RFC-style syntax check. Local, instant, free. Eliminates obvious typos.
  • Stage 2 — DNS. MX record lookup via dnspython. Confirms the domain accepts mail.
  • Stage 3 — SMTP. Connection-level handshake without sending mail. Detects mailbox existence.
  • Stage 4 — API. Optional third-party verification with disposable detection, role-based detection, accept-all flagging and spam-trap analysis.

Result and reuse

Each validation run is stored and linked to the source record. Repeated checks of the same address reuse the cached result up to a configurable TTL, avoiding redundant API calls and saving cost.

Built-in validators

  • Regexp. Syntax-only; no network call. First line of defence.
  • DNS (dnspython). Verifies MX and A records exist for the domain.
  • SMTP. Opens a connection to the recipient mail server and queries the mailbox without sending.

Third-party API providers

Eight commercial validators are supported out of the box. Configure with your API key and assign a sequence in the rule engine.

  • NeverBounce — high accuracy, accept-all flagging, role-based detection.
  • ZeroBounce — disposable detection, spam-trap detection, AI scoring.
  • Clearout — bulk-friendly, real-time validation, deliverability scoring.
  • MailerCheck — bounce prediction, MX validation, syntax check in one call.
  • Mailgun — part of the Mailgun deliverability stack, suitable if you already send via Mailgun.
  • SendPulse — free tier available, integrated with the SendPulse marketing suite.
  • MillionVerifier — high-volume bulk verification, predictable pricing.
  • QuickEmailVerification — fast single-call API, accept-all and disposable detection.

Where validation appears

Each integration adds a status badge to the relevant list view and decoration to the form view. Records are auto-validated on create and update.

  • Contacts (res.partner) — email field. Visible in customer and supplier lists.
  • CRM (crm.lead) — email_from field. Visible on the leads list and pipeline.
  • HR (hr.employee) — work_email field. Visible in the employee directory.
  • HR Recruitment (hr.applicant) — email_from field. Visible in the candidate pipeline.
  • Events (event.registration) — email field. Visible in the registrations list.
  • Mass Mailing (mailing.contact) — email field. Helps clean lists before send.
  • SMTP — built-in validator that performs server-level handshake.
  • DNS — built-in validator that resolves MX and A records.
  • Web — public endpoint for single-email and bulk validation requests.

Three steps to live validation

  1. Install the bundle. Apps menu, search for kw_email_validation_bundle and install. The base module and all integrations are pulled automatically.
  2. Configure validators. Settings, Technical, Email Validation, Validators. Enter API keys for any paid provider you plan to use. SMTP and DNS work without keys.
  3. Set rules. Settings, Technical, Email Validation, Rules. Define the sequence in which validators run. Cheap local checks first, paid APIs last.

Existing data

Bulk-validate addresses already in the database from any list view. Select records, then Action, Validate Email. Results appear in seconds for local checks, minutes for API checks.

Frequently asked questions

Are API keys required to use the suite?

No. Regexp, DNS and SMTP checks work with no external service. API providers are optional and are typically used to add disposable, spam-trap and accept-all detection.

How are API rate limits handled?

Each validator can be assigned a per-domain rule and a sequence. Rate-limited providers are placed last in the chain so they only run when local checks pass.

Can I bulk-validate the existing contacts database?

Yes. Select records in any supported list view and run the Validate Email action. The bundle module exposes a dedicated wizard for batched runs with progress indication.

How do I add a custom validator?

Inherit the kw.email.validator model and override the validate method. The new validator becomes available in the rules engine without further configuration.

Which providers detect spam-traps?

ZeroBounce and NeverBounce explicitly mark spam-trap addresses. The others return generic invalid status without categorising the trap.

Modules in this suite

Install the bundle for the full set, or pick individual integrations.

Services

Customization

Custom validators, private API integrations, per-customer rule engines.

Migration

Upgrade between Odoo versions with preserved validation history.

Support

Installation help, debugging and live troubleshooting.

Need help?

Contact Kitworks Systems for installation help, bug reports, feature requests or custom validator integrations.

Email info@kitworks.systems