Php 如何验证电子邮件是否有效
在发送前,我尝试了很多方法来跟踪am电子邮件是否有效。 我使用php邮件和swift邮件发送电子邮件。许多网站被告知参考mx记录。但它只返回域是否有效。不返回电子邮件。例如,如果我有一个域Php 如何验证电子邮件是否有效,php,email,bounce,Php,Email,Bounce,在发送前,我尝试了很多方法来跟踪am电子邮件是否有效。 我使用php邮件和swift邮件发送电子邮件。许多网站被告知参考mx记录。但它只返回域是否有效。不返回电子邮件。例如,如果我有一个域example.com,并且我只创建了mail@example.com,如果我试图将邮件发送到mailmailme@example.com还返回电子邮件是否有效。但是我需要mailmailme@example.com在发送此电子邮件之前无效 就像中的过程一样,尝试构建 $APIUrl = 'http://www
example.com
,并且我只创建了mail@example.com
,如果我试图将邮件发送到mailmailme@example.com
还返回电子邮件是否有效。但是我需要mailmailme@example.com
在发送此电子邮件之前无效
就像中的过程一样,尝试构建
$APIUrl = 'http://www.email-validator.net/api/verify';
$Params = array('EmailAddress' => $Email,
'APIKey' => '[your API key]');
$Request = @http_build_query($Params);
$ctxData = array(
'method' => "POST",
'header' => "Connection: close\r\n".
"Content-Length: ".strlen($Request)."\r\n",
'content'=> $Request);
$ctx = @stream_context_create(array('http' => $ctxData));
// send API request
$result = json_decode(@file_get_contents(
$APIUrl, false, $ctx));
// check API result
if ($result && $result->{'status'} > 0) {
switch ($result->{'status'}) {
// valid addresses have a {200, 207, 215} result code
case 200:
case 207:
case 215:
echo "Address is valid.";
break;
case 114;
// retry
break;
default:
echo "Address is invalid.";
echo $result->{'info'};
echo $result->{'details'};
break;
}
} else {
echo $result->{'info'};
}
在您的代码中无法100%确定电子邮件是否有效 您可以尝试连接到邮件服务器,启动邮件会话并“要求”服务器接受给定地址的邮件 如果地址未列出,某些邮件服务器将返回错误,但其他服务器将接受任何地址,只要该地址在服务器范围内 对于您提到的站点,请尝试检查此地址,例如: 无效_address@microsoft.com
您将得到服务器接受此地址的回答,但这并不意味着它是有效的…不幸的是,无法可靠地验证电子邮件地址是否有效,因为如果地址不存在,服务器通常不会发回错误。这是必要的,因为否则垃圾邮件发送者只需尝试电子邮件地址,就可以找出哪些是有效的,哪些是无效的。除非您使用一些拥有无数电子邮件地址的全球服务,否则无法检查电子邮件地址是否存在。但它们只起到抓捕垃圾邮件机器人的作用,不会将电子邮件地址分发给第三方。我尝试了email-validator.net,结果是:OK-Catch All Active此域的邮件服务器接受该地址,但它也实现了一个Catch All策略。因此,如果不发送消息并等待回复,则无法确定具有此名称的邮件帐户是否确实存在。因此没有回调。你基本上是在问,在不付费的情况下,你怎么做这项付费服务呢?@WigglerJtag,付费服务如何验证启用了捕获所有功能的服务器的id?比如email-validator.net和所有其他服务器(有很多,它们的数据库中都不能有无数的电子邮件地址)。所以,必须有一种方法来验证电子邮件,即使是对所有服务器,你认为呢?