📅  最后修改于: 2023-12-03 15:02:37.572000             🧑  作者: Mango
在 Web 应用程序中,经常需要验证用户提供的电子邮件地址是否真实有效。 Laravel 框架提供了一个轻松的方式来验证电子邮件地址。
通过 Illuminate\Validation\Validator
类, Laravel 提供了一个内置的验证器规则 email
用于验证电子邮件地址。该规则会检查电子邮件的格式是否正确,但是它并不会检查电子邮件地址是否真实有效。
因此,为了验证电子邮件地址是否真实有效,我们需要使用第三方库来帮助我们完成这个任务。
Laravel 推荐了 MailboxValidator 和 ZeroBounce 这两个服务来进行电子邮件地址验证。它们提供了一个简单方便的 API 来检查电子邮件地址是否可用。
接下来,我们将通过使用 MailboxValidator
来检查电子邮件地址是否真实有效。
在使用 MailboxValidator
服务之前,我们需要先安装它的 PHP 客户端库。在 Laravel 中,我们可以使用 Composer 来完成安装。
composer require mailboxvalidator/mailboxvalidator-php
在安装完成之后,我们需要在 .env
文件中配置邮箱地址和 API 密钥,以便我们的程序可以访问 MailboxValidator
服务。
MBV_API_KEY=<your_api_key>
MBV_EMAIL=<your_email_address>
接下来,我们将编写代码来检查电子邮件地址是否真实有效。
use MailboxValidator\EmailValidation\EmailValidationApi;
function checkEmail($email) {
$api_key = env('MBV_API_KEY');
$mbv = new EmailValidationApi($api_key);
$result = $mbv->ValidateEmail($email);
if ($result->error_code === 'smtp_connect_error') {
return false;
}
return $result->status === 'False' ? false : true;
}
$email = 'test@example.com';
if (checkEmail($email)) {
echo "Valid email: $email";
} else {
echo "Invalid email: $email";
}
代码片段:
```php
use MailboxValidator\EmailValidation\EmailValidationApi;
function checkEmail($email) {
$api_key = env('MBV_API_KEY');
$mbv = new EmailValidationApi($api_key);
$result = $mbv->ValidateEmail($email);
if ($result->error_code === 'smtp_connect_error') {
return false;
}
return $result->status === 'False' ? false : true;
}
$email = 'test@example.com';
if (checkEmail($email)) {
echo "Valid email: $email";
} else {
echo "Invalid email: $email";
}