ashallendesign/laravel-mailboxlayer

一个轻量级的Laravel扩展包,用于通过Mailbox Layer API验证电子邮件。

v1.0.1 2020-12-31 01:29 UTC

This package is auto-updated.

Last update: 2024-09-18 21:55:42 UTC


README

Laravel Mailbox Layer

Latest Version on Packagist Build Status Total Downloads PHP from Packagist GitHub license

目录

概述

Laravel Mailbox Layer是一个轻量级的Laravel包装器扩展包,可用于通过Mailbox Layer API验证电子邮件地址。该包支持缓存,因此您可以立即开始验证电子邮件地址。

Mailbox Layer Usage Image

安装

要求

该包已开发和测试,以确保与以下最低要求兼容

  • 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分支。

致谢

变更日志

查看变更日志以获取有关最新更改的更多信息。

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件