Paket Laravel canggih yang dirancang untuk memvalidasi alamat email dengan mudah terhadap berbagai penyedia email spam menggunakan beragam driver. Terintegrasi secara mulus dengan sistem validasi Laravel, paket ini menawarkan dukungan komprehensif untuk memvalidasi input email dalam formulir dan RESTful API
Melayani | Deskripsi | Pengemudi | Dokumentasi | Didukung |
---|---|---|---|---|
Lokal | Daftar teks lokal domain email spam. | lokal | Baca selengkapnya | ✅ Ya |
Terpencil | Menggunakan fungsi bawaan PHP getmxrr() , checkdnsrr() . fsockopen() untuk memvalidasi domain email | terpencil | Baca selengkapnya | ✅ Ya |
AbstrakApi | Menggunakan rangkaian API Abstrak untuk memvalidasi domain email | abstractapi | Baca selengkapnya | ✅ Ya |
Verifikasi Email Cepat | Layanan verifikasi email yang andal, akurat, terjangkau, dan canggih | verifikasi email cepat | Baca selengkapnya | ✅ Ya |
Verifalia | Layanan validasi email berbasis web yang memungkinkan untuk mengunggah dan memvalidasi daftar alamat email dengan mudah | verifikasi | Baca selengkapnya | ✅ Ya |
KirimGrid | Penyedia SMTP berbasis cloud yang memungkinkan Anda memvalidasi alamat email sebelum mengirim. | sendgrid | Baca selengkapnya | ✅ Ya |
CATATAN: Layanan lainnya akan segera ditambahkan. (Anda juga dapat berkontribusi pada proyek ini dengan menambahkan lebih banyak layanan - ZeroBounce, Mailboxlayer, EmailListVerify, Emailable, dll)
Anda dapat menginstal paket melalui composer:
composer require martian/spammailchecker
Martian SpamMailChecker SpamMailCheckerServiceProvider::class,
config/app.php
dan tambahkan baris berikut ke array aliases
: ' SpamMailChecker ' => Martian SpamMailChecker Facades SpamMailChecker::class,
Publikasikan file konfigurasi menggunakan perintah berikut:
php artisan vendor:publish --provider= " MartianSpamMailCheckerProvidersSpamMailCheckerServiceProvider "
File konfigurasi terletak di config/laravel-spammail-checker.php
. Anda dapat mengkonfigurasi paket untuk menggunakan driver apa pun yang didukung. Driver default adalah local
yang menggunakan daftar teks lokal domain email spam.
Untuk menggunakan local
sebagai driver pilihan Anda, Anda perlu mengatur kunci default
di file konfigurasi config/laravel-spammail-checker.php
ke local
:
' default ' => ' local ' ,
Atau Anda dapat mengatur variabel lingkungan SPAM_MAIL_CHECKER_DEFAULT_DRIVER
ke local
di file .env
Anda.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = local
Pengandar lokal menggunakan daftar teks lokal domain email spam. File terletak di resources/config/emails.txt
. Anda dapat memasukkan lebih banyak domain dengan menambahkannya ke susunan blacklist
atau mengecualikan domain dengan menambahkannya ke susunan 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 ' ,
],
]
]
Hapus konfigurasi dan cache menggunakan perintah berikut setelah melakukan perubahan pada file konfigurasi:
php artisan optimize:clear
CATATAN: Driver lokal tidak peka huruf besar-kecil. Jadi, Anda tidak perlu khawatir dengan kasus domain email.
Untuk menggunakan remote
sebagai driver pilihan Anda, Anda perlu mengatur kunci default
di file konfigurasi config/laravel-spammail-checker.php
ke remote
:
' driver ' => ' remote ' ,
Atau Anda dapat mengatur variabel lingkungan SPAM_MAIL_CHECKER_DEFAULT_DRIVER
ke remote
di file .env
Anda.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = remote
Driver jarak jauh menggunakan fungsi bawaan PHP getmxrr()
, checkdnsrr()
. fsockopen()
untuk memvalidasi domain email. Anda dapat mengonfigurasi driver jarak jauh untuk memeriksa MX - getmxrr()
, DNS - checkdnsrr()
, dan SMTP - fsockopen
atau memvalidasi domain email. Anda juga dapat mengonfigurasi nilai batas waktu dalam hitungan detik.
' 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
]
]
Untuk menggunakan abstractapi
sebagai driver pilihan Anda, Anda perlu mengatur kunci default
di file konfigurasi config/laravel-spammail-checker.php
menjadi abstractapi
:
'default' => 'abstractapi',
Atau Anda dapat mengatur variabel lingkungan SPAM_MAIL_CHECKER_DEFAULT_DRIVER
ke abstractapi
di file .env
Anda.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = abstractapi
Tambahkan kunci ABSTRACTAPI_API_KEY
abstractAPI yang Anda dapatkan dari sini ke file env
Anda.
ABSTRACTAPI_API_KEY=abstractapi_api_key
Anda dapat mengonfigurasi score
untuk menentukan ambang batas alamat email yang valid. Skornya berkisar antara 0 hingga 1. Semakin tinggi skornya, semakin besar kemungkinan alamat email tersebut valid. Anda juga dapat menerima alamat email sekali pakai dengan accept_disposable
ke 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
]
]
Untuk menggunakan quickemailverification
sebagai driver pilihan Anda, Anda perlu mengatur kunci default
di file konfigurasi config/laravel-spammail-checker.php
menjadi quickemailverification
:
'default' => 'quickemailverification',
Atau Anda dapat mengatur variabel lingkungan SPAM_MAIL_CHECKER_DEFAULT_DRIVER
ke quickemailverification
di file .env
Anda.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = quickemailverification
Tambahkan kunci QUICKEMAILVERIFICATION_API_KEY
QuickEmailVerification yang Anda dapatkan dari sini ke file env
Anda.
QUICKEMAILVERIFICATION_API_KEY = quickemailverification_api_key
Anda dapat mengonfigurasi driver untuk menerima alamat email sekali pakai dengan accept_disposable
ke true
.
' drivers ' => [
...
' quickemailverification ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]
Untuk menggunakan verifalia
sebagai driver pilihan Anda, Anda perlu mengatur kunci default
di file konfigurasi config/laravel-spammail-checker.php
menjadi verifalia
:
'default' => 'verifalia',
Atau Anda dapat mengatur variabel lingkungan SPAM_MAIL_CHECKER_DEFAULT_DRIVER
ke verifalia
di file .env
Anda.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = verifalia
Untuk menggunakan layanan verifalia, Anda perlu mengatur kredensial login di file env
Anda. Anda bisa mendapatkan kredensial Anda setelah Anda membuat pengguna di sini.
VERIFALIA_USERNAME = verifalia_username
VERIFALIA_PASSWORD = verifalia_password
Anda dapat mengonfigurasi driver untuk menerima alamat email sekali pakai dengan accept_disposable
ke true
.
' drivers ' => [
...
' verifalia ' => [
...
' accept_disposable ' => true, // When set to true, it will accept disposable email addresses
]
]
CATATAN: Pengguna di verifalia harus diberikan izin untuk menggunakan API. Anda dapat melakukan ini dengan membuka di sini dan mengklik pengguna edit yang ingin Anda beri izin. Kemudian klik pada tab
Permissions
dan periksa izin yang sesuai di bagianEmail validations
.
Untuk menggunakan sendgrid
sebagai driver pilihan Anda, Anda perlu mengatur kunci default
di file konfigurasi config/laravel-spammail-checker.php
menjadi sendgrid
:
'default' => 'sendgrid',
Atau Anda dapat mengatur variabel lingkungan SPAM_MAIL_CHECKER_DEFAULT_DRIVER
ke sendgrid
di file .env
Anda.
SPAM_MAIL_CHECKER_DEFAULT_DRIVER = sendgrid
Tambahkan kunci Sendgrid SENDGRID_API_KEY
yang Anda dapatkan dari sini ke file env
Anda.
SENDGRID_API_KEY = sendgrid_api_key
Anda dapat mengonfigurasi driver untuk menerima alamat email sekali pakai dengan accept_disposable
ke true
. Skor juga dapat dikonfigurasi untuk menentukan ambang batas alamat email yang valid. Skornya berkisar antara 0 hingga 1. Semakin tinggi skornya, semakin besar kemungkinan alamat email tersebut valid. Sumber juga dapat dikonfigurasi untuk menentukan sumber alamat email. Sumbernya bisa berupa signup
atau 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
]
]
Untuk menggunakan paket ini, Anda perlu memanggil aturan validasi spammail
di aturan validasi Anda. Anda juga dapat mengubah nama aturan menjadi apa pun yang Anda inginkan di file konfigurasi config/laravel-spammail-checker.php
di bawah kunci rule
, begitu pula pesan kesalahan di bawah kunci 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 ' ,
]);
}
Atau manfaatkan spammail
di file Permintaan Anda seperti ini:
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules ()
{
return [
' email ' => ' required|spammail|max:255 ' ,
];
}
Pesan kesalahan khusus dapat ditambahkan ke aturan validasi spammail
.
' email.spammail ' => ' This email address is invalid. ' , // Custom error message
Atau Anda dapat mengubah pesan kesalahan di file konfigurasi config/laravel-spammail-checker.php
di bawah kunci error_message
.
' error_message ' => ' This email address is invalid. ' , // Custom error message
Anda juga dapat menggunakan kelas secara langsung tanpa menggunakan aturan validasi spammail
. Ini berguna ketika Anda ingin menggunakan paket dalam aturan validasi khusus Anda atau kelas khusus Anda sendiri.
use Martian SpamMailChecker SpamMailChecker ;
public function checkEmail ( $ email )
{
$ spamMailChecker = new SpamMailChecker ();
$ spamMailChecker -> validate ( $ email );
}
Anda juga dapat menggunakan kelas SpamMailChecker
secara langsung tanpa membuat instance-nya.
use Martian SpamMailChecker Facades SpamMailChecker ;
public function checkEmail ( $ email )
{
SpamMailChecker:: validate ( $ email );
}
Anda juga dapat menggunakan setiap driver satu per satu tanpa menggunakan aturan validasi spammail
. Hal ini berguna ketika driver tertentu dibutuhkan dalam situasi tertentu.
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
Silakan lihat CHANGELOG untuk informasi lebih lanjut tentang apa yang berubah baru-baru ini.
Silakan melakukan fork proyek ini dan membuat permintaan tarik. Untuk informasi lebih lanjut, periksa KONTRIBUSI untuk detailnya.
Jika Anda menemukan masalah terkait keamanan, silakan kirim email ke [email protected] daripada menggunakan pelacak masalah.
Lisensi MIT (MIT). Silakan lihat File Lisensi untuk informasi lebih lanjut.