Skip to Content
Menu
Third Party
Download for v 17.0 Deploy on Odoo.sh
Availability
Odoo Online
Odoo.sh
On Premise
Lines of code 760
Technical Name kw_email_validation
LicenseLGPL-3
Websitehttps://github.com/kitworks-systems/email-validation
Versions
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Lines of code 760
Technical Name kw_email_validation
LicenseLGPL-3
Websitehttps://github.com/kitworks-systems/email-validation
Versions

Base Email Validation

License: LGPL-3 Kitworks Systems


This module provides core functionality for email address validation in Odoo. It allows you to verify email addresses for validity, reducing bounce rates and improving the quality of your contact data.

Key features include:

  • Email Syntax Validation: Basic validation of email format
  • Domain Validation: Verify that email domains exist
  • Multiple Validation Services: Support for various email validation APIs
  • Validation Status Tracking: Track validation status of email addresses
  • Automatic Validation: Schedule automatic validation of email addresses
  • Manual Validation: Trigger validation on demand

Supported Validation Services

  • NeverBounce
  • QuickEmailVerification
  • MillionVerifier
  • Clearout
  • MailerCheck
  • Mailgun
  • SendPulse
  • ZeroBounce

Developer Guide

Configuration

Configure a Validation Service:
validator = env['kw.email.validator'].search([('name', '=', 'neverbounce')], limit=1)
validator.write({
    'api_key': 'your_api_key_here',
    'active': True,
})

Validating Email Addresses

Manual Validation:
# Create validation record
validation = env['kw.email.validation'].create({
    'email': 'test@example.com',
})

# Validate email
validation.validate_email()
Using with Mixin:
from odoo import models, fields

class MyModel(models.Model):
    _name = 'my.model'
    _inherit = ['kw.email.validation.mixin']
    
    email = fields.Char(string='Email')
    
    # Configure which field contains the email to validate
    _kw_email_validation_field = 'email'

Features Details

  • Validation Status:
    • Pending: Email is waiting for validation
    • Valid: Email is valid and can receive messages
    • Invalid: Email is invalid or cannot receive messages
  • Validation Rules:
    • Configure which validators to use for specific domains
    • Set validation priority using sequence field
    • Rules determine the order of validator application
  • Automatic Validation:
    • Scheduled task for validating pending emails
    • Automatic validation of new emails when added

Validation Rules Configuration

Validation rules are a key component of the email validation system. They determine which validators are applied to which email addresses and in what order. Properly configured rules ensure optimal validation accuracy while minimizing API costs and validation time.

Rule Components

  • Name: Name of the rule for identification
  • Validator: The specific validation service to use
  • Sequence: Determines the order of rule application (lower numbers execute first)
  • Active: Enable or disable specific rules

Rule Application Logic

When an email address is validated, the system follows these steps:

  1. Sort all active rules by sequence (ascending)
  2. For each rule, apply the validator specified in the rule to the email address
  3. If the validator returns a negative result (invalid email), the process stops
  4. If all validators return a positive result, the email is considered valid

Configuration Examples

Example: Cost Optimization Strategy
# First try regexp validation - Sequence 10
Name: Regexp Validation
Validator: regexp
Sequence: 10

# Then try DNS validation - Sequence 20
Name: DNS Validation
Validator: DNS
Sequence: 20

# Then try SMTP validation - Sequence 30
Name: SMTP Validation
Validator: SMTP
Sequence: 30

# Finally use paid API - Sequence 40
Name: API Validation
Validator: ZeroBounce
Sequence: 40
        

Best Practices

  • Start with less expensive validators (regexp, SMTP, DNS) before using paid API services
  • Use lower sequence values for faster and cheaper validators
  • Use higher sequence values for more expensive or slower validators
  • Regularly review validation results to optimize rule configurations
  • Configure rules in order from fastest to most accurate validators

Bug Tracker

Bugs are tracked on https://kitworks.systems/requests. In case of trouble, please check there if your issue has already been reported.

Maintainer

KitWorks Systems. Our web site: https://kitworks.systems

We can provide you further Odoo Support, Odoo implementation, Odoo customization, Odoo 3rd Party development and integration software, consulting services. Our main goal is to provide the best quality product for you.

For any questions contact us.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.