Awesome
Disposable / Temporary Email Address Filter
This package provides a method for determining whether an email address is a disposable / temporary email address.
All credit to the maintaining of the list of disposable / temporary email addresses goes to github.com/disposable-email-domains/disposable-email-domains.
This project and it's maintainer(s) do not discourage the use of such disposable / temporary email addresses, but simply allows for the detection of such.
Installation
PHP 8.2 or above is required. If PHP 8.1 is required please use version 4. If PHP 7.4 to 8.0 is required please use version 3.
To install via Composer:
composer require elliotjreed/disposable-emails-filter
Usage
Check if the email address is in the temporary domain list
The checker / filter can either be used via a static or non-static means:
<?php
require 'vendor/autoload.php';
use ElliotJReed\DisposableEmail\Email;
if ((new Email())->isDisposable('email@temporarymailaddress.com')) {
echo 'This is a disposable / temporary email address';
}
or
<?php
require 'vendor/autoload.php';
use ElliotJReed\DisposableEmail\DisposableEmail;
if (DisposableEmail::isDisposable('email@temporarymailaddress.com')) {
echo 'This is a disposable / temporary email address';
}
List all domains in the temporary email domain list
The lister can either be used via a static or non-static means:
<?php
require 'vendor/autoload.php';
use ElliotJReed\DisposableEmail\Email;
foreach ((new Email())->getDomainList() as $domain) {
echo $domain . PHP_EOL;
}
or
<?php
require 'vendor/autoload.php';
use ElliotJReed\DisposableEmail\DisposableEmail;
foreach (DisposableEmail::getDomainList() as $domain) {
echo $domain . PHP_EOL;
}
If an invalid email address is provided then an InvalidEmailException
is thrown, so it is advisable to check that the email address is valid first. For example:
<?php
require 'vendor/autoload.php';
use ElliotJReed\DisposableEmail\Email;
$email = 'not-a-real-email-address#example.net';
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
if ((new Email())->isDisposable($email)) {
echo 'This is a disposable / temporary email address';
}
} else {
echo 'This is not a valid email address';
}
Would output:
This is not a valid email address
You can also provide your own custom domain list in a new line separated plain-text file, for example:
example.com
example.net
Then passing the file location into the constructor:
<?php
require 'vendor/autoload.php';
use ElliotJReed\DisposableEmail\Email;
new Email('/path/to/custom/list.txt');
If an invalid list is provided then an InvalidDomainListException
is thrown.
Getting Started with this Repository
PHP 7.4 or above and Composer is expected to be installed on our system.
Installing Composer
For instructions on how to install Composer visit getcomposer.org.
Installing the Package
composer require elliotjreed/disposable-emails-filter
Installing for Development
After cloning this repository, change into the newly created directory and run
composer install
or if you have installed Composer locally
php composer.phar install
This will install all dependencies needed for the project.
Running the Tests
All tests can be run by executing
composer run-script test
phpunit
will automatically find all tests inside the test
directory and run them based on the configuration in the phpunit.xml
file.
Built With
License
This project is licensed under the MIT License - see the LICENCE file for details.