แพ็คเกจ 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) โปรดดูไฟล์ใบอนุญาตสำหรับข้อมูลเพิ่มเติม