Пакет PHP, который обнаруживает одноразовые (временные/выбросные/поддельные) адреса электронной почты. Это рамки-оживленная и не имеют зависимостей, но включает в себя поддержку Laravel. Он подтверждает адреса электронной почты, чтобы убедиться, что они являются подлинными, что полезно для управления регистрацией учетных записей и оценки количества законных адресов электронной почты в вашей системе.
Этот инструмент также помогает избежать ошибок связи и блокирует адреса спама.
Поиск сверхбыстрый O(1) , потому что одноразовые домены электронной почты хранятся локально, используя набор Hash PHP.
? Список располагаемых доменов электронной почты регулярно обновляется автоматически из надежных внешних источников.
Примечание
Читайте ниже для конкретных инструкций Laravel.
Требовать этот пакет с композитором, используя следующую команду:
composer require beeyev/disposable-email-filter-phpПростая проверка, если адрес электронной почты является одноразовым:
<?php
require __DIR__ . ' /vendor/autoload.php ' ;
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
$ disposableEmailFilter = new DisposableEmailFilter ();
// Check if email address is disposable
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // false
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // trueПРИМЕЧАНИЕ. Домены в белом списке имеют более высокий приоритет, чем домены с черным списком.
<?php
require __DIR__ . ' /vendor/autoload.php ' ;
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
$ disposableEmailFilter = new DisposableEmailFilter ();
// Add multiple custom domains to blacklist
$ disposableEmailFilter -> blacklistedDomains ()-> addMultiple ([ ' mailinator.com ' , ' 10minute-mail.org ' ]);
// Add one domain to whitelist
$ disposableEmailFilter -> whitelistedDomains ()-> add ( ' tempmailer.com ' );
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // false (because it's whitelisted now)
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // true
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // true
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // falseТакже можно добавить домены с черным списком и белым списком, используя зависимость конструктора:
use Beeyev DisposableEmailFilter CustomEmailDomainFilter CustomEmailDomainFilter ;
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
$ blacklistedDomains = new CustomEmailDomainFilter ([ ' blacklisted1.com ' , ' blacklisted2.com ' , ' blacklisted3.com ' ]);
$ whitelistedDomains = new CustomEmailDomainFilter ([ ' abc2.com ' , ' whitelisted1.com ' ]);
$ disposableEmailFilter = new DisposableEmailFilter ( $ blacklistedDomains , $ whitelistedDomains );
$ disposableEmailFilter -> isDisposableEmailAddress ( ' [email protected] ' ); // false - whitelistedПримечание. Вы можете разработать свою собственную логику фильтрации, создав пользовательский класс, который реализует
CustomEmailDomainFilterInterface
Если вы попытаетесь передать пустую строку или строку с неверным форматом электронной почты, будет брошено исключение.
use Beeyev DisposableEmailFilter DisposableEmailFilter ;
use Beeyev DisposableEmailFilter Exceptions InvalidEmailAddressException ;
$ disposableEmailFilter = new DisposableEmailFilter ();
try {
$ disposableEmailFilter -> isDisposableEmailAddress ( ' john:gmail.com ' ); // Exception will be thrown because of invalid email format
} catch ( InvalidEmailAddressException $ e ) {
echo $ e -> getMessage ();
} Если вы ожидаете, что адрес электронной почты может быть недействительным и не хотите обернуть код в Try/Catch,
Вы можете использовать метод isDisposableEmailAddressSafe , чтобы проверить, правильно ли отформатирован адрес электронной почты перед проверкой, если он является одноразовым:
$ disposableEmailFilter = new DisposableEmailFilter ();
$ emailAddress = ' john:gmail.com ' ;
if ( $ disposableEmailFilter -> isEmailAddressValid ( $ emailAddress )) {
$ disposableEmailFilter -> isDisposableEmailAddress ( $ emailAddress );
}Этот пакет включает в себя поставщик услуг и правило проверки формы для Laravel.
composer require beeyev/disposable-email-filter-php Пакет будет автоматически зарегистрирован с использованием механизма Auto-раскрытия Laravel.
Но если вам нужно сделать это вручную, вы можете добавить следующую строку в массив providers в файле config/app.php :
Beeyev DisposableEmailFilter Adapters Laravel DisposableEmailFilterServiceProvider::class, Используйте правило проверки not_disposable_email или Object new NotDisposableEmail() , чтобы проверить, что конкретное поле не содержит располагаемого адреса электронной почты.
Примечание
❗ Поместите его после валидатора по электронной почте, чтобы убедиться, что обрабатываются только действительные электронные письма.
Пример:
// Using validation rule name:
' email_field ' => ' required|email|not_disposable_email ' ,
// Or using a validation rule object:
' email_field ' => [ ' email ' , new NotDisposableEmail ()], Вы можете использовать Facade DisposableEmail для доступа к экземпляру DisposableEmailFilter :
use Beeyev DisposableEmailFilter Adapters Laravel Facades DisposableEmail ;
DisposableEmail:: isEmailAddressValid ( ' [email protected] ' );При желании вы можете опубликовать файл и переводы конфигурации для настройки поведения пакета:
php artisan vendor:publish --tag=disposable-email-filter Эта команда создаст файл конфигурации disposable-email-filter.php в файлах каталога config и перевода в каталоге lang/vendor/disposable-email-filter .
Поскольку список одноразовых доменов электронной почты регулярно обновляется, важно держать пакет в курсе.
Новая PATCH -версия пакета выпускается всякий раз, когда список обновляется.
Эти обновления безопасны и не урезаны, что позволяет обновлять пакет с помощью этой команды композитора:
composer update beeyev/disposable-email-filter-phpВы можете запустить эту команду каждый раз в трубопроводах CI/CD до развертывания проекта.
Не стесняйтесь вносить свой вклад в этот проект, если вы хотите добавить новые функции, улучшить существующие или исправлять ошибки.
Чтобы добавить новые одноразовые домены, вы можете обновить файл blacklist.txt и создать запрос на вытягивание.
В качестве альтернативы, вы можете открыть проблему с доменами, которые вы хотите добавить в черный список или белый список.
7c/fakefilterFGRibreau/mailcheckerdisposable-email-domainsЛокальный черный список и белый список хранятся в файлах BlackList.txt и WhiteList.txt.
Отчеты об ошибках и запросы функций могут быть представлены на трекере выпуска GitHub.
Лицензия MIT (MIT). Пожалуйста, смотрите файл лицензии для получения дополнительной информации.
Если вы любите этот проект, подумайте о том, чтобы дать мне