ashallendesign / laravel-mailboxlayer
一个轻量级的Laravel扩展包,用于通过Mailbox Layer API验证电子邮件。
Requires
- php: ^7.3|^8.0
- guzzlehttp/guzzle: ^6.3|^7.0
- illuminate/container: ^7.0|^8.0
Requires (Dev)
- mockery/mockery: ^1.0
- nunomaduro/larastan: ^0.6.11
- orchestra/testbench: ^4.0|^5.0|^6.0
- phpunit/phpunit: ^8.2
This package is auto-updated.
Last update: 2024-09-18 21:55:42 UTC
README
目录
概述
Laravel Mailbox Layer是一个轻量级的Laravel包装器扩展包,可用于通过Mailbox Layer API验证电子邮件地址。该包支持缓存,因此您可以立即开始验证电子邮件地址。
安装
要求
该包已开发和测试,以确保与以下最低要求兼容
- PHP 7.3
- Laravel 7
安装包
您可以通过Composer安装此包
composer require ashallendesign/laravel-mailboxlayer
发布配置
然后,您可以使用以下命令发布包的配置文件(以便您可以对其进行更改)
php artisan vendor:publish --provider="AshAllenDesign\MailboxLayer\Providers\MailboxLayerProvider"
获取您的Mailbox Layer API密钥
要使用此包并与之交互Mailbox Layer API网站并获取您的API密钥。一旦您有了密钥,您可以将它设置在您的.env
文件中,如下所示
MAILBOX_LAYER_API_KEY=your-api-key-here
用法
方法
验证单个电子邮件地址
要验证单个电子邮件地址,您可以使用包中提供的check()
方法。此方法返回一个ValidationResult
对象。
以下示例显示了如何验证单个电子邮件地址
use AshAllenDesign\MailboxLayer\Classes\MailboxLayer; $mailboxLayer = new MailboxLayer('api-key-here'); $validationResult = $mailboxLayer->check('example@domain.com');
验证多个电子邮件地址
要验证多个电子邮件地址,您可以使用包中提供的checkMany()
方法。此方法返回一个包含ValidationResult
对象的Collection
。
以下示例显示了如何验证多个电子邮件地址
use AshAllenDesign\MailboxLayer\Classes\MailboxLayer; $mailboxLayer = new MailboxLayer('api-key-here'); $validationResults = $mailboxLayer->checkMany(['example@domain.com', 'test@test.com']);
门面
如果您更喜欢在Laravel中使用门面,您可以选择使用提供的Mailbox Layer
门面而不是手动实例化AshAllenDesign\MailboxLayer\Classes\MailboxLayer
类。
以下示例显示了如何使用门面验证电子邮件地址
use MailboxLayer; return MailboxLayer::check('example@domain.com');
可用的验证结果属性
缓存
缓存验证结果
有时您可能想要缓存电子邮件的验证结果。这可以通过从缓存而不是新的API请求中检索结果来显著提高性能。
例如,如果您正在导入包含电子邮件地址的CSV文件,您可能想要验证每个地址。但是,如果CSV中包含一些重复的电子邮件地址,可能会导致不必要的API调用。因此,通过使用缓存,每个唯一的地址只会从API中获取一次。要这样做,您可以使用shouldCache()
方法。
使用缓存是推荐的,因为它减少了您达到每月请求限制或Mailbox Layer使用的速率限制的机会。有关API限制的更多信息,请参阅此处。
以下示例显示了如何缓存验证结果
use AshAllenDesign\MailboxLayer\Classes\MailboxLayer; $mailboxLayer = new MailboxLayer('api-key-here'); // Result fetched from the API. $validationResults = $mailboxLayer->shouldCache()->check('example@domain.com'); // Result fetched from the cache. $validationResults = $mailboxLayer->shouldCache()->check('example@domain.com');
清除缓存的验证结果
默认情况下,该软件包将始终尝试从缓存中获取验证结果,然后再通过API获取。如前所述,这可以带来多项性能优势。
然而,有时您可能想要忽略缓存的结果并重新向API发送请求。例如,您可能有一个超过6个月的缓存验证结果,可能已过时或不准确,因此您可能想要更新验证数据并确保其正确性。为此,您可以使用fresh()
方法。
以下示例展示了如何获取新的验证结果
use AshAllenDesign\MailboxLayer\Classes\MailboxLayer; $mailboxLayer = new MailboxLayer('api-key-here'); $validationResults = $mailboxLayer->fresh()->check('example@domain.com');
选项
使用HTTPS
默认情况下,所有API请求都使用HTTPS进行。但是,Mailbox Layer API允许在需要时使用HTTP进行请求。这在本地开发环境中工作尤其有用。要在发送API请求时使用HTTP,您可以使用withHttps()
方法。
请注意,在实时生产环境中不建议使用HTTP发送请求!
以下示例展示了如何使用HTTP而不是HTTPS发送请求
use AshAllenDesign\MailboxLayer\Classes\MailboxLayer; $mailboxLayer = new MailboxLayer('api-key-here'); $validationResults = $mailboxLayer->withHttps(false)->check('example@domain.com');
运行SMTP检查
默认情况下,所有API请求都会对电子邮件地址运行SMTP检查。运行此检查可以提高结果的准确性,并给出更好的结果。但是,根据Mailbox Layer的说法,运行此检查大约占API总响应时间的75%。
因此,您可以通过使用withSmtpCheck()
方法在防止SMTP检查运行之前减少总体运行时间。
以下示例展示了如何在不运行SMTP检查的情况下验证电子邮件地址
use AshAllenDesign\MailboxLayer\Classes\MailboxLayer; $mailboxLayer = new MailboxLayer('api-key-here'); $validationResults = $mailboxLayer->withSmtpCheck(false)->check('example@domain.com');
有关SMTP检查的更多信息,请参阅Mailbox Layer API文档。
测试
vendor/bin/phpunit
安全
如果您发现任何安全相关的问题,请直接通过mail@ashallendesign.co.uk联系我报告。
贡献
如果您希望对该软件包进行任何更改或改进,请随时提交拉取请求。
在提交您的拉取请求之前,请使用以下指南为此库做出贡献
- 为添加的任何新函数编写测试。如果您正在更新现有代码,请确保现有测试通过,并在需要时编写更多测试。
- 遵循PSR-2编码标准。
- 将所有拉取请求提交到
master
分支。
致谢
- Ash Allen
- Jess Pickup(Logo)
- 所有贡献者
变更日志
查看变更日志以获取有关最新更改的更多信息。
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。