aman00323/emailchecker

Laravel 邮箱地址存在性检查包

2.2.0 2020-04-28 13:20 UTC

This package is auto-updated.

Last update: 2024-08-30 01:17:42 UTC


README

CircleCI MadeWithLaravel.com shield Maintenance GitHub license GitHub release

Email Checker 由 Aman Nurani 创建和维护。它为 Laravel 的开发和生产提供强大的电子邮件验证系统。它使用 fsockopen()cURL 等多种方式验证电子邮件地址在现实世界中是否存在。

如今,大多数网站都使用注册流程,需要验证用户的拥有权。大多数开发者通过发送邮件验证链接来验证电子邮件,这样会在数据库中存储额外的电子邮件(如果它们在现实中不存在)。此外,有些人使用 一次性电子邮件 进行临时使用。

🎉 我们拥有超过 25,000 个一次性域名列表 🎉

此包将帮助您验证电子邮件

安装

Email Checker 需要 PHP > 7.0。这个特定版本支持最新的 Laravel

要获取最新版本,只需使用 Composer 依赖项目

$ composer require aman00323/emailchecker

安装完成后,您需要包含 Aman\EmailVerifier\EmailChecker 以访问电子邮件验证的方法。

使用

检查一次性电子邮件

如果您想检查电子邮件是否为 一次性电子邮件,则可以使用以下 emailchecker 函数

添加了检查一次性电子邮件的新选项

此选项是 checkDisposableEmail() 方法的部分,您需要将第二个参数传递为 true。

当您传递 true 时,辅助工具将使用托管在 gist 上的列表中的可丢弃电子邮件检查电子邮件。因此,每当列表更改时,您就无需更新包。

app(EmailChecker::class)->checkDisposableEmail('something@example.com','boolean'));

此电子邮件验证将基于 一次性电子邮件 列表进行,此函数将检查输入的电子邮件地址是否在可丢弃列表中。

检查 DNS 和 MX 记录

为了获得更好的输出,您需要为此方法设置发件人电子邮件地址

app(EmailChecker::class)->setFromEmail('something@example.com','boolean'));

或在 .env 中设置 ENV 变量

EMAIL_CHECKER_SET_FROM='something@example.com'

另一种用法是检查电子邮件地址的 DNSMX 记录。在此方法中,包将尝试从电子邮件地址中提取记录并尝试使用 SMTP 进行验证。

如果此方法成功提取记录,则它将尝试使用 fsockopen() 在电子邮件地址上发送 HELLO 消息,如果它从邮件服务器获取有效状态,则返回 true。此外,如果未验证详细信息,函数也将返回 true。

app(EmailChecker::class)->checkMxAndDnsRecord('something@example.com'));

这将返回包含成功和详细信息的数组,详细信息将指示电子邮件是否验证以及是否存在任何异常。

为了获得更好的输出,您的服务器需要支持fsockopen()

检查域名状态

有时仅根据DNS和MX记录很难确定电子邮件是否存在,因此该方法将使用cURL检查域名状态。

此方法确保提供的电子邮件具有有效的域名。

app(EmailChecker::class)->checkDomain('something@example.com'));

此方法将返回TRUE或FALSE,如果成功获取响应,则返回TRUE。响应基于HTTP状态代码进行验证。

检查电子邮件

此方法将使用所有方法,并提供详细响应,如果返回TRUE。

如果任何方法返回FALSE,则不会提供详细报告。

app(EmailChecker::class)->checkEmail('something@example.com','boolean'));

我们已为checkDisposableEmail()添加了新选项,该选项的第二个参数将启用深度检查,以将域名与大型列表进行比较。

不用担心,这不会花费太多时间。😄

所有这些都是不同的方法,您可以根据需要单独使用。要一次性调用所有方法,请使用检查电子邮件

未来开发

请提出您的想法,以改进此包。

贡献

所有贡献者都受欢迎,代码必须遵循PSR2。创建功能分支与电子邮件检查器进行比较。您的代码必须通过测试用例。

注意:此包不能保证验证每个电子邮件地址,其中一些由于MAIL服务器安全性问题无法验证。