myamwso / smtp-validate-email
通过 SMTP 进行电子邮件地址验证
2.2.6
2019-04-11 01:36 UTC
Requires
- php: >=5.6
README
通过 SMTP 进行电子邮件地址验证/验证。
SMTPValidateEmail\Validator
类检索电子邮件域的 MX 记录,然后连接到该域的 SMTP 服务器,以尝试确定地址是否真的存在。
早期版本(1.0 之前)使用了 SMTP_Validate_Email
类名(且没有使用命名空间和其他现在常见的 PHP 特性)。已注意保留旧 API,并且迁移旧代码应该很轻松。请参阅"从旧版本迁移到 1.0" 部分。或者直接使用/下载古老的 0.7 版本。
特性
- 实际上不发送消息,完成时优雅地重置 SMTP 会话
- 根据相关 RFC 实现命令特定的通信超时
- 支持捕获所有账户检测
- 支持批量模式处理
- 支持日志/调试
- 没有外部依赖
- 覆盖单元/功能测试
安装
通过 composer 安装
composer require myamwso/smtp-validate-email --update-no-dev
使用示例
基本示例
require 'vendor/autoload.php'; use SMTPValidateEmail\Validator as SmtpEmailValidator; /** * Simple example */ $email = 'someone@example.org'; $sender = 'sender@example.org'; $validator = new SmtpEmailValidator($email, $sender); // If debug mode is turned on, logged data is printed as it happens: // $validator->debug = true; $results = $validator->validate(); var_dump($results); // Get log data (log data is always collected) $log = $validator->getLog(); var_dump($log);
多个收件人和其他细节
require 'vendor/autoload.php'; use SMTPValidateEmail\Validator as SmtpEmailValidator; /** * Validating multiple addresses/recipients at once: * (checking multiple addresses belonging to the same server * uses a single connection) */ $emails = [ 'someone@example.org', 'someone.else@example.com' ]; $sender = 'sender@example.org'; $validator = new SmtpEmailValidator($email, $sender): $results = $validator->validate(); var_dump($results); /** * The `validate()` method accepts the same parameters * as the constructor, so this is equivalent to the above: */ $emails = [ 'someone@example.org', 'someone.else@example.com' ]; $sender = 'sender@example.org'; $validator = new SmtpEmailValidator(): $results = $validator->validate($emails, $sender); var_dump($results);
从旧版本迁移到 1.0
早期版本使用了全局 SMTP_Validate_Email
类名。您可以在现有代码中继续使用该名称,并通过使用 别名/导入 转换到较新的(由 composer 提供的)版本,如下所示
需要 composer 包
composer require myamwso/smtp-validate-email --update-no-dev
然后在您的代码中
require 'vendor/autoload.php'; use SMTPValidateEmail\Validator as SMTP_Validate_Email; // Now any old code referencing `SMTP_Validate_Email` should still work as it did earlier
开发 & 贡献
请参阅 Makefile 和 composer.json 以及 package.json 中的开发依赖项。
在克隆(或下载)存储库后运行 make
一次会为您提供
Usage: make [target]
[target] help
-------- ----
help What you're currently reading
install Installs dev dependencies
test Runs tests
coverage Runs tests with code coverage
$(PIDFILE) Starts the smtp-sink server
server-start Stops and starts the smtp-sink server
server-stop Stops smtp-sink server if it's running
clean Removes installed dev dependencies
因此,运行 make install
以开始。之后,您应该能够运行测试。
测试由 phpunit
和本地运行在端口 1025 上的 smtp-sink
实例提供支持。如果 smtp-sink
不可用,则标记需要它的测试为跳过。
欢迎提交拉取请求!
为了使您的拉取请求合并,请遵循以下简单的规则
- 所有代码提交都必须通过
make test
清晰地通过(没有错误) - 坚持现有的代码风格(使用
phpcs
) - 不应有外部依赖
- 如果您想添加重要的功能/依赖项,请首先提交一个有关此问题的 issue,以便我们讨论添加是否适合项目