EmailValidation Model Documentation

The EmailValidation model provides comprehensive functionality for validating and managing email addresses. This model tracks which email addresses are valid, which are blocked, and why.

πŸ“š Documentation Chapters

This documentation is organized into focused chapters for better navigation and maintenance:

πŸš€ Basic Usage & Database Structure β†’

Get started with email validation fundamentals:

  • Overview of validation checks
  • Database schema and structure
  • Individual email validation
  • Manual status updates
  • Quick examples

πŸ“Š Bulk Validation β†’

Efficiently validate multiple email addresses:

  • Bulk validation methods
  • Result structures and status types
  • Performance considerations
  • Common use cases (newsletter, import)

🎨 Laravel Collections β†’

Advanced filtering and data manipulation:

  • Collection operations and filtering
  • Data transformation techniques
  • Handy one-liners and patterns
  • Real-world filtering examples

πŸ“‹ API Reference β†’

Complete method documentation:

  • All static methods with parameters
  • Return value structures
  • Error handling and exceptions
  • Database schema details

πŸ’‘ Practical Examples β†’

Real-world implementation examples:

  • Newsletter validation
  • User registration flow
  • Batch import with reporting
  • Email list cleanup
  • API endpoints
  • Scheduled maintenance

⚑ Best Practices β†’

Performance and maintenance guidelines:

  • Performance optimization
  • Error handling strategies
  • Monitoring and maintenance
  • Security considerations
  • Testing approaches

Quick Start

Basic Validation

use Darvis\Mailtrap\Models\EmailValidation;

// Validate a single email (returns null if valid, error message if invalid)
$errorMessage = EmailValidation::validateEmail('user@example.com');
$isValid = $errorMessage === null;

// Bulk validation
$emails = ['user1@test.com', 'user2@example.com'];
$result = EmailValidation::bulkValidationStatus($emails);

echo "Valid: " . $result['valid'];
echo "Invalid: " . $result['invalid'];

Laravel Collections Filtering

// Filter invalid emails
$invalidEmails = collect($result['details'])
    ->filter(fn($details) => $details['status'] !== 'valid')
    ->keys()
    ->toArray();

Key Features

  • βœ… Format Validation - Checks basic email format
  • βœ… MX Record Verification - Verifies domain mail servers
  • βœ… IP Validation - Checks if MX records point to valid IPs
  • βœ… Bulk Processing - Efficient validation of multiple emails
  • βœ… Laravel Collections - Powerful filtering and data manipulation
  • βœ… Database Caching - Fast lookups of previously validated emails
  • βœ… Status Tracking - Maintains validation history
What you want to do Go to
Get started Basic Usage β†’
Validate multiple emails Bulk Validation β†’
Filter and manipulate results Laravel Collections β†’
See real examples Practical Examples β†’
Look up a method API Reference β†’
Optimize performance Best Practices β†’

Status Types

  • valid - Email passed all validation checks
  • blocked - Email is blocked (spam domain, invalid MX, etc.)
  • invalid - Email has format issues or other problems
  • not_exists - Email not found in database (needs validation)

Getting Help

Each chapter includes:

  • πŸ“– Detailed explanations with context
  • πŸ’» Code examples you can copy and use
  • ⚑ Performance tips and best practices
  • πŸ”— Cross-references to related topics

Start with Basic Usage β†’ if you’re new to the EmailValidation model, or jump directly to the chapter that matches your needs using the navigation guide above.


Table of contents