แพ็คเกจ Laravel อันทรงพลังที่ออกแบบมาเพื่อตรวจสอบที่อยู่อีเมลกับผู้ให้บริการสแปมเมลต่างๆ ได้อย่างง่ายดายโดยใช้ไดรเวอร์ที่หลากหลาย ผสานรวมกับระบบตรวจสอบความถูกต้องของ Laravel ได้อย่างราบรื่น แพ็คเกจนี้ให้การสนับสนุนที่ครอบคลุมสำหรับการตรวจสอบอินพุตอีเมลในรูปแบบและ RESTful API
บริการ | คำอธิบาย | คนขับ | เอกสารประกอบ | รองรับ |
---|---|---|---|---|
ท้องถิ่น | รายการข้อความในเครื่องของโดเมนอีเมลขยะ | ท้องถิ่น | อ่านเพิ่มเติม | ✅ใช่ |
ระยะไกล | การใช้ฟังก์ชัน PHP ที่สร้างขึ้น getmxrr() , checkdnsrr() fsockopen() เพื่อตรวจสอบโดเมนอีเมล | ระยะไกล | อ่านเพิ่มเติม | ✅ใช่ |
บทคัดย่อApi | การใช้ชุด API ของ Abstract เพื่อตรวจสอบโดเมนอีเมล | นามธรรม | อ่านเพิ่มเติม | ✅ใช่ |
การยืนยันอีเมลด่วน | บริการตรวจสอบอีเมลที่เชื่อถือได้ แม่นยำ ราคาไม่แพง และทันสมัย | การยืนยันอีเมลอย่างรวดเร็ว | อ่านเพิ่มเติม | ✅ใช่ |
เวอริฟาเลีย | บริการตรวจสอบอีเมลบนเว็บซึ่งช่วยให้อัปโหลดและตรวจสอบรายการที่อยู่อีเมลได้อย่างง่ายดาย | การยืนยัน | อ่านเพิ่มเติม | ✅ใช่ |
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
เป็นไดรเวอร์ที่คุณเลือก คุณจะต้องตั้งค่าคีย์ default
ในไฟล์การกำหนดค่า config/laravel-spammail-checker.php
เป็น local
:
' default ' => ' local ' ,
หรือคุณสามารถตั้งค่าตัวแปรสภาพแวดล้อม SPAM_MAIL_CHECKER_DEFAULT_DRIVER
ให้เป็น local
ในไฟล์ .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
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
เป็นไดรเวอร์ที่คุณเลือก คุณจะต้องตั้งค่าคีย์ 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 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
ในไฟล์คำขอของคุณดังนี้:
/**
* 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) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม