다양한 드라이버를 사용하여 다양한 스팸 메일 제공업체에 대해 이메일 주소를 손쉽게 검증하도록 설계된 강력한 Laravel 패키지입니다. Laravel의 유효성 검사 시스템과 완벽하게 통합된 이 패키지는 양식 및 RESTful API에서 이메일 입력 유효성을 검사하기 위한 포괄적인 지원을 제공합니다.
서비스 | 설명 | 운전사 | 선적 서류 비치 | 지원됨 |
---|---|---|---|---|
현지의 | 스팸 이메일 도메인의 로컬 텍스트 목록입니다. | 현지의 | 자세히 알아보기 | ✅ 예 |
원격 | PHP 내장 함수 getmxrr() , checkdnsrr() 사용. 이메일 도메인을 검증하는 fsockopen() | 원격 | 자세히 알아보기 | ✅ 예 |
AbstractApi | Abstract의 API 제품군을 사용하여 이메일 도메인 유효성 검사 | 추상화 | 자세히 알아보기 | ✅ 예 |
빠른이메일확인 | 안정적이고 정확하며 합리적인 가격의 고급 이메일 확인 서비스 | 빠른 이메일 확인 | 자세히 알아보기 | ✅ 예 |
베리팔리아 | 이메일 주소 목록을 쉽게 업로드하고 확인할 수 있는 웹 기반 이메일 확인 서비스입니다. | 검증 | 자세히 알아보기 | ✅ 예 |
SendGrid | 이메일을 보내기 전에 이메일 주소를 확인할 수 있는 클라우드 기반 SMTP 공급자입니다. | 센드그리드 | 자세히 알아보기 | ✅ 예 |
참고: 더 많은 서비스가 곧 추가될 예정입니다. (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
사용하려면 config/laravel-spammail-checker.php
구성 파일의 default
키를 local
로 설정해야 합니다.
' default ' => ' local ' ,
또는 .env
파일에서 SPAM_MAIL_CHECKER_DEFAULT_DRIVER
환경 변수를 local
로 설정할 수 있습니다.
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
사용하려면 config/laravel-spammail-checker.php
구성 파일의 default
키를 remote
으로 설정해야 합니다.
' driver ' => ' remote ' ,
또는 .env
파일에서 SPAM_MAIL_CHECKER_DEFAULT_DRIVER
환경 변수를 remote
으로 설정할 수 있습니다.
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
선택한 드라이버로 사용하려면 config/laravel-spammail-checker.php
구성 파일의 default
키를 abstractapi
로 설정해야 합니다.
'default' => 'abstractapi',
또는 .env
파일에서 SPAM_MAIL_CHECKER_DEFAULT_DRIVER
환경 변수를 abstractapi
로 설정할 수 있습니다.
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
선택한 드라이버로 사용하려면 config/laravel-spammail-checker.php
구성 파일의 default
키를 quickemailverification
으로 설정해야 합니다.
'default' => 'quickemailverification',
또는 .env
파일에서 SPAM_MAIL_CHECKER_DEFAULT_DRIVER
환경 변수를 quickemailverification
으로 설정할 수 있습니다.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = quickemailverification
여기에서 받은 QUICKEMAILVERIFICATION_API_KEY
QuickEmailVerification 키를 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
선택한 드라이버로 사용하려면 config/laravel-spammail-checker.php
구성 파일의 default
키를 verifalia
로 설정해야 합니다.
'default' => 'verifalia',
또는 .env
파일에서 SPAM_MAIL_CHECKER_DEFAULT_DRIVER
환경 변수를 verifalia
로 설정할 수 있습니다.
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
사용하려면 config/laravel-spammail-checker.php
구성 파일의 default
키를 sendgrid
로 설정해야 합니다.
'default' => 'sendgrid',
또는 SPAM_MAIL_CHECKER_DEFAULT_DRIVER
환경 변수를 .env
파일의 sendgrid
로 설정할 수 있습니다.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = sendgrid
여기에서 얻은 SENDGRID_API_KEY
Sendgrid 키를 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
을 활용하세요.
/**
* 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
또는 error_message
키 아래 config/laravel-spammail-checker.php
구성 파일에서 오류 메시지를 변경할 수 있습니다.
' 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를 참조하세요.
이 프로젝트를 자유롭게 포크하고 끌어오기 요청을 해주세요. 자세한 내용은 CONTRIBUTING을 확인하세요.
보안 관련 문제를 발견한 경우 문제 추적기를 사용하는 대신 [email protected]으로 이메일을 보내주세요.
MIT 라이센스(MIT). 자세한 내용은 라이센스 파일을 참조하십시오.