2017 © Pedro PelĆ”ez
 

library smtp-validate-email

Perform email address verification via SMTP

image

zytzagoo/smtp-validate-email

Perform email address verification via SMTP

  • Monday, November 13, 2017
  • by zytzagoo
  • Repository
  • 33 Watchers
  • 221 Stars
  • 3,429 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 109 Forks
  • 12 Open issues
  • 3 Versions
  • 260 % Grown

The README.md

SMTP_Validate_Email

PHP Version Software License Tests Build Status Scrutinizer Coverage, (*1)

Perform email address validation/verification via SMTP., (*2)

The SMTPValidateEmail\Validator class retrieves MX records for the email domain and then connects to the domain's SMTP server to try figuring out if the address really exists., (*3)

Earlier versions (before 1.0) used the SMTP_Validate_Email class name (and did not use namespaces and other now-common PHP features). Care has been taken to keep the old API and migrating old code should be painless. See "Migrating to 1.0 from older versions" section. Or just use/download the ancient 0.7 version., (*4)

Features

  • Not actually sending the message, gracefully resetting the SMTP session when done
  • Command-specific communication timeouts implemented per relevant RFCs
  • Catch-all account detection
  • Batch mode processing supported
  • Logging/debugging support
  • No external dependencies
  • Covered with unit/functional tests

Installation

Install via composer:, (*5)

composer require zytzagoo/smtp-validate-email --update-no-dev, (*6)

Usage examples

Basic example

<?php

require 'vendor/autoload.php';

use SMTPValidateEmail\Validator as SmtpEmailValidator;

/**
 * Simple example
 */
$email     = 'someone@example.org';
$sender    = 'sender@example.org';
$validator = new SmtpEmailValidator($email, $sender);

// If debug mode is turned on, logged data is printed as it happens:
// $validator->debug = true;
$results   = $validator->validate();

var_dump($results);

// Get log data (log data is always collected)
$log = $validator->getLog();
var_dump($log);

Multiple recipients and other details

<?php

require 'vendor/autoload.php';

use SMTPValidateEmail\Validator as SmtpEmailValidator;

/**
 * Validating multiple addresses/recipients at once:
 * (checking multiple addresses belonging to the same server
 * uses a single connection)
 */
$emails    = [
    'someone@example.org',
    'someone.else@example.com'
];
$sender    = 'sender@example.org';
$validator = new SmtpEmailValidator($emails, $sender);
$results   = $validator->validate();

var_dump($results);

/**
 * The `validate()` method accepts the same parameters
 * as the constructor, so this is equivalent to the above:
 */
$emails    = [
    'someone@example.org',
    'someone.else@example.com'
];
$sender    = 'sender@example.org';
$validator = new SmtpEmailValidator();
$results   = $validator->validate($emails, $sender);

var_dump($results);

Migrating to 1.0 from older versions

Earlier versions used the global SMTP_Validate_Email classname. You can keep using that name in your existing code and still switch to the newer (composer-powered) version by using aliasing/importing like this:, (*7)

Require the composer package:, (*8)

composer require zytzagoo/smtp-validate-email --update-no-dev, (*9)

And then in your code:, (*10)

<?php

require 'vendor/autoload.php';

use SMTPValidateEmail\Validator as SMTP_Validate_Email;

// Now any old code referencing `SMTP_Validate_Email` should still work as it did earlier

Development & Contributions

See the Makefile and the development dependencies in composer.json., (*11)

Running make once you clone (or download) the repository gives you:, (*12)

Usage: make [target]

[target]                       help
--------                       ----
help                           What you're currently reading
install                        Installs dev dependencies
clean                          Removes installed dev dependencies
test                           Runs tests
coverage                       Runs tests with code coverage
server-start                   Stops and starts the smtp server
server-stop                    Stops smtp server if it's running
(PIDFILE)                      Starts the smtp server
(MAILHOG)                      Downloads platform-specific mailhog binary

So, run make install to get started. Afterwards you should be able to run the tests (make test)., (*13)

Tests are powered by phpunit and a local ./bin/mailhog instance running on port 1025. Tests requiring an SMTP server are marked as skipped (if/when the SMTP server is unavailable)., (*14)

Pull requests are welcome!, (*15)

In order to get your pull request merged, please follow these simple rules:, (*16)

  • all code submissions must pass cleanly (no errors) with make test
  • stick to existing code style (phpcs is used)
  • there should be no external dependencies
  • if you want to add significant features/dependencies, file an issue about it first so we can discuss whether the addition makes sense for the project

Changelog

License (GPL-3.0+)

The Versions

13/11 2017

dev-master

9999999-dev https://github.com/zytzagoo/smtp-validate-email

Perform email address verification via SMTP

  Sources   Download

GPL-3.0+

The Requires

  • php >=5.6

 

The Development Requires

by TomaÅ” Trkulja [zytzagoo]

email validator smtp verify

10/11 2017

v1.0.0

1.0.0.0 https://github.com/zytzagoo/smtp-validate-email

Perform email address verification via SMTP

  Sources   Download

GPL-3.0+

The Requires

  • php >=5.6

 

The Development Requires

by TomaÅ” Trkulja [zytzagoo]

email validator smtp verify

02/11 2017

v0.7

0.7.0.0 https://github.com/zytzagoo/smtp-validate-email

Perform email address verification via SMTP

  Sources   Download

GPL-3.0+

The Requires

  • php >=5.3.1

 

by TomaÅ” Trkulja [zytzagoo]

email validator smtp verify