jojostx/laravel-elasticemail

一个轻量级的Laravel包,用于使用ElasticEmail API验证电子邮件。

v1.0 2023-01-09 18:08 UTC

This package is auto-updated.

Last update: 2024-09-09 16:52:40 UTC


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)。有关更多信息,请参阅许可文件