PHP。如何检查电子邮件域是否存在?

PHP。如何检查电子邮件域是否存在?,php,validation,email,dns,Php,Validation,Email,Dns,我想知道如何检查我是否有有效的电子邮件,包括域名 比如说, 电子邮件,如: email1@gmail.com,email2@hotmail.com应返回true 但是像这样的电子邮件: email3@gmal.com,email4@hotmai.com应返回false 我们怎样才能做到这一点 我可以使用filter\u var($email,filter\u VALIDATE\u email)检查电子邮件是否有效,但这并不保证我们可以发送电子邮件(email3@gmal.com这是一个例子)。我

我想知道如何检查我是否有有效的电子邮件,包括域名

比如说,

电子邮件,如:

email1@gmail.com
email2@hotmail.com
应返回true

但是像这样的电子邮件:

email3@gmal.com
email4@hotmai.com
应返回false

我们怎样才能做到这一点


我可以使用
filter\u var($email,filter\u VALIDATE\u email)
检查电子邮件是否有效,但这并不保证我们可以发送电子邮件(email3@gmal.com这是一个例子)。我们如何保证我们拥有一个有效的域?

一个可能的解决方案是尝试连接到该域,看看它是否成功:

if(fopen("http://$domain"))
{
    echo "success, valid domain";
} else {
    echo "failure, not valid domain";
}

其中,
$domain
是电子邮件地址中
@
符号后面的部分。(这可以使用正则表达式获得)。

一种可能的解决方案是尝试连接到域,看看它是否成功:

if(fopen("http://$domain"))
{
    echo "success, valid domain";
} else {
    echo "failure, not valid domain";
}

其中,
$domain
是电子邮件地址中
@
符号后面的部分。(这可以通过正则表达式获得)。

您可以创建一个可接受域的白名单,但这无疑会遗漏许多有效服务

在执行MX dig后,您可以尝试连接到相应端口上的域,但如果服务停止一小时进行维护,该怎么办


确定电子邮件是否有效的最佳方法是发送验证码,并让用户在收到电子邮件后单击/输入代码。

您可以创建一个可接受域的白名单,但这无疑会遗漏许多有效服务

在执行MX dig后,您可以尝试连接到相应端口上的域,但如果服务停止一小时进行维护,该怎么办


确定电子邮件是否有效的最佳方法是发送验证代码,并让用户在收到电子邮件后单击/输入代码。

您可以使用CURL检查域是否存在,此选项非常简单,但效果非常好。实施起来很快

检查此响应以获得经过良好测试的解决方案: -

要获取域电子邮件,您可以使用以下内容:

<?php
function getDomainFromEmail($email)
{
// Get the data after the @ sign
$domain = substr(strrchr($email, "@"), 1);

return $domain;
}

// Example

$email = 'the_username_here@yahoo.com';

$domain = getDomainFromEmail($email);

echo $domain; // yahoo.com
?>


而不是使用CURL进行快速检查。

您可以使用CURL检查域是否存在,此选项非常简单,但效果非常好。实施起来很快

检查此响应以获得经过良好测试的解决方案: -

要获取域电子邮件,您可以使用以下内容:

<?php
function getDomainFromEmail($email)
{
// Get the data after the @ sign
$domain = substr(strrchr($email, "@"), 1);

return $domain;
}

// Example

$email = 'the_username_here@yahoo.com';

$domain = getDomainFromEmail($email);

echo $domain; // yahoo.com
?>



然后使用CURL进行快速检查。

nslookup
,但这并不能保证邮件是可交付的。网络抢占者拥有与其他域相似的大多数域。你可以爆炸
@
然后ping该域。为什么不能
email4@hotmai.com
是否为有效的电子邮件地址?如果您想查看电子邮件地址是否有效,请发送一封验证电子邮件。哦,而且
hotmai
有效。您也可以执行mx循环
nslookup
,但这并不能保证邮件是可交付的。网络抢占者拥有与其他域相似的大多数域。你可以爆炸
@
然后ping该域。为什么不能
email4@hotmai.com
是否为有效的电子邮件地址?如果您想查看电子邮件地址是否有效,请发送一封验证电子邮件。哦,而且
hotmai
有效。您还可以进行mx循环Thx,quinxorin。为什么要使用filter\u var(gethostbyname('gmal.com')、filter\u VALIDATE\u IP);这样好还是不好?为什么?你对此有什么答案吗?域上是否运行HTTP服务器与它是否对电子邮件有效无关。这实际上是一个更好的答案,因为它会更快。大家好,我将使用此代码检查电子邮件。。。。它是好的还是我应该搜索另一个函数??我想要一个更快更可靠的功能。为什么要使用filter\u var(gethostbyname('gmal.com')、filter\u VALIDATE\u IP);这样好还是不好?为什么?你对此有什么答案吗?域上是否运行HTTP服务器与它是否对电子邮件有效无关。这实际上是一个更好的答案,因为它会更快。大家好,我将使用此代码检查电子邮件。。。。它是好的还是我应该搜索另一个函数??我想要一个更快更可靠的功能