jojostx / laravel-elasticemail
一个轻量级的Laravel包,用于使用ElasticEmail API验证电子邮件。
Requires
- php: ^8.0|^8.1
- guzzlehttp/guzzle: ^6.3|^7.0
- illuminate/container: ^8.0|^9.0
Requires (Dev)
- mockery/mockery: ^1.4.4
- nunomaduro/larastan: ^0.6.11
- orchestra/testbench: ^4.0|^5.0|^6.0
- phpunit/phpunit: ^8.2
README
概述
Laravel ElasticEmail 是一个轻量级的包装器 Laravel 包,可用于通过 ElasticEmail API 验证电子邮件地址。该包支持缓存,因此您可以从一开始就立即验证电子邮件地址。
安装
需求
该包已开发和测试,以确保与以下最低要求兼容
- PHP 8.0+
- Laravel 8+
安装包
您可以通过Composer安装此包
composer require jojostx/laravel-elasticemail
发布配置
然后,您可以使用以下命令发布包的配置文件(以便您可以对其进行更改)
php artisan vendor:publish --provider="Jojostx\ElasticEmail\Providers\ElasticEmailProvider"
获取您的ElasticEmail API密钥
要使用此包并与ElasticEmail API交互,您需要注册 ElasticEmail API 网站,并获取API密钥。一旦您有了密钥,您就可以像下面这样将其设置在您的 .env
文件中
ElasticEmail_API_KEY=your-api-key-here
用法
方法
验证单个电子邮件地址
要验证单个电子邮件地址,您可以使用包中提供的 check()
方法。此方法返回一个 ValidationResult
对象。
以下示例显示了如何验证单个电子邮件地址
use Jojostx\ElasticEmail\Classes\ElasticEmail; $ElasticEmail = new ElasticEmail('api-key-here'); $validationResult = $ElasticEmail->check('example@domain.com');
验证多个电子邮件地址
要验证多个电子邮件地址,您可以使用包中提供的 checkMany()
方法。此方法返回一个包含 ValidationResult
对象的 Collection
。
以下示例显示了如何验证多个电子邮件地址
use Jojostx\ElasticEmail\Classes\ElasticEmail; $ElasticEmail = new ElasticEmail('api-key-here'); $validationResults = $ElasticEmail->checkMany(['example@domain.com', 'test@test.com']);
外观
如果您更喜欢在Laravel中使用外观,您可以选择使用提供的 ElasticEmail
外观,而不是手动实例化 Jojostx\ElasticEmail\Classes\ElasticEmail
类。
以下示例显示了如何使用外观验证电子邮件地址
use ElasticEmail; return ElasticEmail::check('example@domain.com');
可用的验证结果属性
缓存
缓存验证结果
有时您可能想要缓存电子邮件的验证结果。这可能会在您再次尝试验证电子邮件时带来显著的性能优势,因为结果将是从缓存中获取的,而不是从新的API请求中获取的。
例如,如果您正在导入包含电子邮件地址的CSV文件,您可能想要验证每个地址。但是,如果CSV中包含一些重复的电子邮件地址,可能会导致不必要的API调用。因此,通过使用缓存,每个唯一的地址只会从API中获取一次。为此,您可以使用 shouldCache()
方法。
使用缓存是推荐的,因为它减少了您达到ElasticEmail每月请求限制或速率限制的可能性。有关 API限制 的更多信息。
以下示例显示了如何缓存验证结果
use Jojostx\ElasticEmail\Classes\ElasticEmail; $ElasticEmail = new ElasticEmail('api-key-here'); // Result fetched from the API. $validationResults = $ElasticEmail->shouldCache()->check('example@domain.com'); // Result fetched from the cache. $validationResults = $ElasticEmail->shouldCache()->check('example@domain.com');
清除缓存的验证结果
默认情况下,该包将始终尝试从缓存中获取验证结果,然后再尝试通过API获取。如前所述,这可以带来多个性能优势。
然而,可能有时您希望忽略缓存的查询结果并重新向API发送请求。例如,您可能有一个超过6个月未更新的验证结果,它可能已经过时或不准确,因此您很可能想要更新验证数据并确保其正确性。为此,您可以使用fresh()
方法。
以下示例展示了如何获取新的验证结果
use Jojostx\ElasticEmail\Classes\ElasticEmail; $ElasticEmail = new ElasticEmail('api-key-here'); $validationResults = $ElasticEmail->fresh()->check('example@domain.com');
测试
vendor/bin/phpunit
安全
如果您发现任何与安全相关的问题,请直接联系我,邮箱:Jojostx,以报告此问题。
贡献
如果您想对该软件包进行任何修改或改进,请随意发起pull request。
在提交pull request之前,请按照以下指南为该库做出贡献
- 为任何新添加的功能编写测试。如果您正在更新现有代码,请确保现有测试通过,并在需要时编写更多测试。
- 遵循PSR-2编码标准。
- 将所有pull request提交到
master
分支。
致谢
变更日志
查看变更日志以获取有关最新更改的更多信息。
许可证
MIT许可(MIT)。有关更多信息,请参阅许可文件。