sorciulus/email-checker

使用 SMTP 的 PHP 邮箱验证器

0.3.1 2017-10-18 08:54 UTC

This package is auto-updated.

Last update: 2024-08-29 04:14:43 UTC


README

Packagist Build Status Scrutinizer Code Quality Code Climate Issue Count PHP Version Software License

PHP 库,用于检查邮件是否存在于 SMTP 服务器上,并从 https://open.kickbox.io API 检查邮件是否可弃用。

安装

通过 Composer

composer require sorciulus/email-checker

用法

使用 email 参数构造函数的基本用法 EmailChecker

<?php
require_once 'vendor/autoload.php';

use sorciulus\EmailChecker\EmailChecker;
use sorciulus\EmailChecker\Exception\EmailCheckerException;
try {
    $check = new EmailChecker("foo@rmqkr.net", "sender@email.com");
	$result = $check->validate()->isValid(); // instance of ResponseChecker
	if ($result) {
	    echo "Email is valid";
	} else {
	    echo "Email not valid";
	}   
} catch (EmailCheckerException $ex) {
	echo $ex->getMessage();	
}
	

使用 EmailChecker 检查邮件是否可弃用

<?php
require_once 'vendor/autoload.php';

use sorciulus\EmailChecker\EmailChecker;
use sorciulus\EmailChecker\Exception\EmailCheckerException;
try {
    $check = new EmailChecker();
    $disponsibleService = $check->getDisponsableService();  
    // You can use email or domain
    if ($disponsibleService->isDisponsable("gucu@asorent.com")) {
        echo "Email is disponsable";
    } else {
        echo "Email not disponsable";
    }
} catch (EmailCheckerException $ex) {
    echo $ex->getMessage(); 
}
    

使用 setEmail 方法的循环用法 EmailChecker

<?php
require_once 'vendor/autoload.php';

use sorciulus\EmailChecker\EmailChecker;
use sorciulus\EmailChecker\Exception\EmailCheckerException;
$emails = ["bar@rmqkr.net", "foo@rmqkr.net", "vakol@yopmail.com"];
$check = new EmailChecker("vufeti@vipepe.com");
// you can set Sender outside loop 
// $check->setSender("sender@email.com");
foreach($emails as $email) {
    try {
        // or you can set Sender inside loop 
        //$check->setSender("sender@email.com");
        $check->setEmail($email);
    	$result = $check->validate()->isValid(); // instance of ResponseChecker
    	if ($result) {
    	    echo "Email is valid";
    	} else {
    	    echo "Email not valid";
    	}   
    } catch (EmailCheckerException $ex) {
    	echo $ex->getMessage();	
    }
}
	

在 ResponseChecker 对象和 EmailCheckerException 中始终存在调试信息

try {
   $check  = new EmailChecker("foo@rmqkr.net");
   $result = $check->validate(); // instance of ResponseChecker
   $debug  = $result->getDebug();
   if ($result->isValid()) {
       echo "Email is valid";
   } else {
       echo "Email not valid";
   }   
} catch (EmailCheckerException $ex) {
   $debug  = $ex->getDebug();
   echo $ex->getMessage();	
}

调试是一个包含执行的 SMTP 命令及其相对响应的数组。

在大量使用的情况下,我建议使用机器端代理。

Laravel 5

完成此操作后,只需将服务提供者类添加到项目的 config/app.php 文件中

服务提供者

sorciulus\EmailChecker\Laravel\EmailCheckerServiceProvider::class,

外观

要使用外观,您必须在 config/app.php 中的别名数组中添加此行

'EmailChecker' => sorciulus\EmailChecker\Laravel\Facades\EmailChecker::class,

使用外观的示例用法

use \EmailChecker; 
use sorciulus\EmailChecker\Exception\EmailCheckerException; 

try{
   EmailChecker::setEmail("foo@rmqkr.net"); 
   $validate = EmailChecker::validate();	
   if ($validate->isValid()) {
      echo "Email is valid";
  } else {
      echo "Email not valid";
  } 
} catch (EmailCheckerException $e) {
   echo $e->getMessage();
}

待办事项

  • 与 Symfony2 集成

许可

本库根据 MIT 许可证发布。有关更多信息,请参阅许可证文件。