Мощный пакет Laravel, предназначенный для простой проверки адресов электронной почты на предмет защиты от различных поставщиков спама с использованием широкого спектра драйверов. Этот пакет, легко интегрированный с системой проверки Laravel, предлагает комплексную поддержку проверки ввода электронной почты в формах и RESTful API.
| Услуга | Описания | Водитель | Документация | Поддерживается |
|---|---|---|---|---|
| Местный | Локальный текстовый список доменов электронной почты, рассылающих спам. | местный | Читать далее | ✅ Да |
| Удаленный | Использование встроенных функций PHP getmxrr() , checkdnsrr() . fsockopen() для проверки домена электронной почты | удаленный | Читать далее | ✅ Да |
| АннотацияApi | Использование набора API Abstract для проверки доменов электронной почты | абстрактное API | Читать далее | ✅ Да |
| Быстрая проверка электронной почты | Надежный, точный, доступный и расширенный сервис проверки электронной почты. | быстрая проверка электронной почты | Читать далее | ✅ Да |
| Верифалия | Веб-служба проверки электронной почты, которая позволяет легко загружать и проверять списки адресов электронной почты. | верифалия | Читать далее | ✅ Да |
| ОтправитьГрид | Облачный поставщик SMTP, который позволяет проверять адреса электронной почты перед отправкой. | sendgrid | Читать далее | ✅ Да |
ПРИМЕЧАНИЕ. В ближайшее время будут добавлены дополнительные услуги. (Вы также можете внести свой вклад в этот проект, добавив дополнительные сервисы — ZeroBounce, Mailboxlayer, EmailListVerify, Emailable и т. д.)
Вы можете установить пакет через композитор:
composer require martian/spammailchecker Martian SpamMailChecker SpamMailCheckerServiceProvider::class,config/app.php и добавьте следующую строку в массив aliases : ' SpamMailChecker ' => Martian SpamMailChecker Facades SpamMailChecker::class,Опубликуйте файл конфигурации с помощью следующей команды:
php artisan vendor:publish --provider= " MartianSpamMailCheckerProvidersSpamMailCheckerServiceProvider " Файл конфигурации находится по адресу config/laravel-spammail-checker.php . Вы можете настроить пакет для использования любого из поддерживаемых драйверов. Драйвер по умолчанию является local и использует локальный текстовый список доменов электронной почты, рассылающих спам.
Чтобы использовать local в качестве драйвера, вам необходимо установить ключ default в файле конфигурации config/laravel-spammail-checker.php на local :
' default ' => ' local ' , Или вы можете установить local переменную среды SPAM_MAIL_CHECKER_DEFAULT_DRIVER в вашем файле .env .
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = local Локальный драйвер использует локальный текстовый список доменов электронной почты, рассылающих спам. Файл находится по адресу resources/config/emails.txt . Вы можете включить больше доменов, добавив их в массив blacklist , или исключить домены, добавив их в массив whitelist .
' drivers ' => [
' local ' => [
...
' whitelist ' => [
// Add domains you want the local driver to ignore here
' gmail.com ' ,
' yahoo.com ' ,
],
' blacklist ' => [
// Add domains you want the local driver to validate against here
' mailinator.com ' ,
' spam.com ' ,
],
]
]После внесения изменений в файл конфигурации очистите конфигурацию и кеш с помощью следующих команд:
php artisan optimize:clearПРИМЕЧАНИЕ. Локальный драйвер нечувствителен к регистру. Таким образом, вам не нужно беспокоиться о домене электронной почты.
Чтобы использовать remote в качестве предпочтительного драйвера, вам необходимо установить ключ default в файле конфигурации config/laravel-spammail-checker.php на remote :
' driver ' => ' remote ' , Или вы можете установить переменную среды SPAM_MAIL_CHECKER_DEFAULT_DRIVER на remote в вашем файле .env .
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = remote Удаленный драйвер использует встроенные функции PHP getmxrr() , checkdnsrr() . fsockopen() для проверки домена электронной почты. Вы можете настроить удаленный драйвер, чтобы проверять MX - getmxrr() , DNS - checkdnsrr() и SMTP - fsockopen или проверять домен электронной почты. Вы также можете настроить значение таймаута в секундах.
' drivers ' => [
...
' remote ' => [
...
' check_dns ' => true, // When set to true, it will check for DNS
' check_smtp ' => false , // When set to true, it will check for SMTP
' check_mx ' => false , // When set to true, it will check for MX record
' timeout ' => 60 * 5 , // 5 minutes
]
] Чтобы использовать abstractapi в качестве предпочтительного драйвера, вам необходимо установить ключ default в файле конфигурации config/laravel-spammail-checker.php на abstractapi :
'default' => 'abstractapi', Или вы можете установить для переменной среды SPAM_MAIL_CHECKER_DEFAULT_DRIVER abstractapi в вашем файле .env .
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = abstractapi Добавьте полученный отсюда ключ ABSTRACTAPI_API_KEY AbstractAPI в свой env -файл.
ABSTRACTAPI_API_KEY=abstractapi_api_key
Вы можете настроить score , чтобы определить порог для действительного адреса электронной почты. Оценка варьируется от 0 до 1. Чем выше оценка, тем больше вероятность того, что адрес электронной почты действителен. Вы также можете принять одноразовые адреса электронной почты, установив для accept_disposable значение true .
' drivers ' => [
...
' abstractapi ' => [
...
' score ' => 0.5 , // 0.5 is the default score
' accept_disposable_email ' => true // When set to true, it will accept disposable email addresses
]
] Чтобы использовать quickemailverification в качестве предпочтительного драйвера, вам необходимо установить ключ default в файле конфигурации config/laravel-spammail-checker.php на quickemailverification :
'default' => 'quickemailverification', Или вы можете установить переменную среды SPAM_MAIL_CHECKER_DEFAULT_DRIVER для quickemailverification в вашем файле .env .
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = quickemailverification Добавьте полученный отсюда ключ QUICKEMAILVERIFICATION_API_KEY в свой env -файл.
QUICKEMAILVERIFICATION_API_KEY = quickemailverification_api_key Вы можете настроить драйвер на прием одноразовых адресов электронной почты, установив для параметра accept_disposable значение true .
' drivers ' => [
...
' quickemailverification ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
] Чтобы использовать verifalia в качестве предпочтительного драйвера, вам необходимо установить ключ default в файле конфигурации config/laravel-spammail-checker.php на verifalia :
'default' => 'verifalia', Или вы можете установить для переменной среды SPAM_MAIL_CHECKER_DEFAULT_DRIVER verifalia в вашем файле .env .
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = verifalia Чтобы использовать службу verifalia, вам необходимо установить учетные данные для входа в ваш env файл. Вы можете получить свои учетные данные после создания пользователя здесь.
VERIFALIA_USERNAME = verifalia_username
VERIFALIA_PASSWORD = verifalia_password Вы можете настроить драйвер на прием одноразовых адресов электронной почты, установив для параметра accept_disposable значение true .
' drivers ' => [
...
' verifalia ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]ПРИМЕЧАНИЕ. Пользователю verifalia необходимо предоставить разрешение на использование API. Вы можете сделать это, перейдя сюда и нажав на пользователя редактирования, которому вы хотите предоставить разрешение. Затем нажмите вкладку
Permissionsи проверьте соответствующие разрешения в разделеEmail validations.
Чтобы использовать sendgrid в качестве предпочтительного драйвера, вам необходимо установить ключ default в файле конфигурации config/laravel-spammail-checker.php на sendgrid :
'default' => 'sendgrid', Или вы можете установить для переменной среды SPAM_MAIL_CHECKER_DEFAULT_DRIVER значение sendgrid в вашем файле .env .
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = sendgrid Добавьте полученный отсюда ключ SENDGRID_API_KEY в свой env -файл.
SENDGRID_API_KEY = sendgrid_api_key Вы можете настроить драйвер на прием одноразовых адресов электронной почты, установив для параметра accept_disposable значение true . Оценка также может быть настроена для определения порога для действительного адреса электронной почты. Оценка варьируется от 0 до 1. Чем выше оценка, тем больше вероятность того, что адрес электронной почты действителен. Источник также можно настроить для определения источника адреса электронной почты. Источником может быть signup или contact .
' drivers ' => [
...
' sendgrid ' => [
...
' score ' => 0.5 , // 0.5 is the default score
' accept_disposable ' => true , // When set to true, it will accept disposable email addresses
' source ' => ' signup ' // The source is signup by default
]
] Чтобы использовать пакет, вам необходимо вызвать правило проверки spammail в ваших правилах проверки. Вы также можете изменить имя правила на любое другое в файле конфигурации config/laravel-spammail-checker.php под ключом rule , а также сообщение об ошибке под ключом error_message .
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return IlluminateContractsValidationValidator
*/
protected function validator ( array $ data )
{
return Validator:: make ( $ data , [
' email ' => ' required|spammail|max:255 ' ,
]);
} Или используйте spammail в файле Requests, например так:
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules ()
{
return [
' email ' => ' required|spammail|max:255 ' ,
];
} В правило проверки spammail можно добавить собственное сообщение об ошибке.
' email.spammail ' => ' This email address is invalid. ' , // Custom error message Или вы можете изменить сообщение об ошибке в файле конфигурации config/laravel-spammail-checker.php под ключом error_message .
' error_message ' => ' This email address is invalid. ' , // Custom error message Вы также можете использовать классы напрямую, не используя правило проверки spammail . Это полезно, если вы хотите использовать пакет в своем собственном правиле проверки или собственном классе.
use Martian SpamMailChecker SpamMailChecker ;
public function checkEmail ( $ email )
{
$ spamMailChecker = new SpamMailChecker ();
$ spamMailChecker -> validate ( $ email );
} Вы также можете использовать класс SpamMailChecker напрямую, не создавая его экземпляр.
use Martian SpamMailChecker Facades SpamMailChecker ;
public function checkEmail ( $ email )
{
SpamMailChecker:: validate ( $ email );
} Вы также можете использовать каждый драйвер отдельно, не используя правило проверки spammail . Это полезно, когда в конкретной ситуации необходим определенный драйвер.
use Martian SpamMailChecker Drivers VerifaliaDriver ;
public function checkEmail ( $ email )
{
$ verifaliaDriver = new VerifaliaDriver ();
$ verifaliaDriver -> validate ( $ email );
} use Martian SpamMailChecker Drivers SendGridDriver ;
public function checkEmail ( $ email )
{
$ sendGridDriver = new SendGridDriver ();
$ sendGridDriver -> validate ( $ email );
} use Martian SpamMailChecker Drivers AbstractApiDriver ;
public function checkEmail ( $ email )
{
$ abstractApiDriver = new AbstractApiDriver ();
$ abstractApiDriver -> validate ( $ email );
} use Martian SpamMailChecker Drivers RemoteDriver ;
public function checkEmail ( $ email )
{
$ remoteDriver = new RemoteDriver ();
$ remoteDriver -> validate ( $ email );
} use Martian SpamMailChecker Drivers LocalDriver ;
public function checkEmail ( $ email )
{
$ localDriver = new LocalDriver ();
$ localDriver -> validate ( $ email );
} use Martian SpamMailChecker Drivers QuickEmailVerificationDriver ;
public function checkEmail ( $ email )
{
$ quickEmailVerificationDriver = new QuickEmailVerificationDriver ();
$ quickEmailVerificationDriver -> validate ( $ email );
}composer testПожалуйста, посетите CHANGELOG для получения дополнительной информации о том, что изменилось за последнее время.
Пожалуйста, не стесняйтесь создать форк этого проекта и сделать запрос на включение. Для получения дополнительной информации проверьте подробности.
Если вы обнаружите какие-либо проблемы, связанные с безопасностью, отправьте электронное письмо по адресу [email protected] вместо использования системы отслеживания проблем.
Лицензия MIT (MIT). Дополнительную информацию см. в файле лицензии.