hbattat / verifyemail
PHP类,可以轻松用于验证电子邮件地址,并确保它有效且确实存在于邮件服务器上。
Requires
- php: >= 5
Requires (Dev)
- phpunit/phpunit: ^4.8.27
README
*** 重要 *** 此仓库不再维护。
这是一个PHP类,可以轻松用于验证电子邮件地址,并确保它有效且确实存在于邮件服务器上。
该类连接到邮件服务器,并检查邮箱是否存在。
博客文章
描述: http://curlybrac.es/2016/07/25/verifyemail-php-class-to-validate-email-address/
如何配置邮件服务器: http://curlybrac.es/2016/07/27/how-to-configure-a-mail-server/
如何安装(使用composer)
将包添加到 composer.json
{
"require": {
"hbattat/verifyemail": "<version number>"
}
}
然后将自动加载添加到您的文件中
require 'vendor/autoload.php';
就这样,现在您可以开始使用该类了!
如何使用
初始化类
$ve = new hbattat\VerifyEmail('some.email.address@example.com', 'my.email.address@my-domain.com');
或者(您可以指定不同于25的其他端口号)
$ve = new hbattat\VerifyEmail('some.email.address@example.com', 'my.email.address@my-domain.com', 26);
第一个电子邮件地址 'some.email.address@example.com' 是要检查的地址,第二个 'my.email.address@my-domain.com' 是提供给服务器的电子邮件地址。这个电子邮件必须是有效的,并且来自与脚本运行相同的邮件服务器。为确保您的服务器不被视为垃圾邮件或被列入黑名单,请在此处检查服务器的评分 https://mail-tester.com
然后调用验证函数
var_dump($ve->verify());
这将返回一个布尔值。如果电子邮件有效,则为true,否则为false。
bool(true)
如果您想获取任何错误,请在验证函数之后调用此函数
print_r($ve->get_errors());
这将返回一个包含所有错误(如果有)的数组
Array
(
[0] => No suitable MX records found.
)
如果您想获取所有连接调试消息,请调用此函数
print_r($ve->get_debug());
这将返回一个包含在过程中使用过的所有消息和值的数组。
Array ( [0] => initialized with Email: h*****@gmail.com, Verifier Email: sam@verifye.ml, Port: 25 [1] => Verify function was called. [2] => Finding MX record... [3] => Found MX: alt4.gmail-smtp-in.l.google.com [4] => Connecting to the server... [5] => Connection to server was successful. [6] => Starting veriffication... [7] => Got a 220 response. Sending HELO... [8] => Response: 250 mx.google.com at your service [9] => Sending MAIL FROM... [10] => Response: 250 2.1.0 OK gw8si3985770wjb.84 - gsmtp [11] => Sending RCPT TO... [12] => Response: 250 2.1.5 OK gw8si3985770wjb.84 - gsmtp [13] => Sending QUIT... [14] => Looking for 250 response... [15] => Found! Email is valid. )
并且可以查看服务器发送的原始调试消息
print_r($ve->get_debug(true));
这将返回一个数组
Array
(
[helo] => 250 mx.google.com at your service
[mail_from] => 250 2.1.0 OK a68si4170774ioe.18 - gsmtp
[rcpt_to] => 250 2.1.5 OK a68si4170774ioe.18 - gsmtp
[quit] => 4
)
其他示例
您也可以在初始化后动态修改/设置要验证的电子邮件、验证器电子邮件和端口号的值
$ve->set_email('<another email Address to verify>'); $ve->set_verifier_email('<another verifier email>'); $ve->set_port(<port number>);
注意
-
一些邮件服务器会静默拒绝测试消息,以防止垃圾邮件发送者检查其用户的电子邮件并过滤有效电子邮件,因此此函数可能无法与所有邮件服务器正常工作。
-
您必须正确配置服务器作为邮件服务器,以避免被阻止或列入黑名单。这包括SSL、SPF记录、域密钥、DMARC记录等。要检查您的服务器,请使用此工具 https://mail-tester.com