Мощный пакет 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). Дополнительную информацию см. в файле лицензии.