为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用PHP检查电子邮件地址是真实还是有效

如何使用PHP检查电子邮件地址是真实还是有效

PHP
婷婷同学_ 2019-08-31 16:16:48
是否可以检查是否存在类似于本网站的电子邮件?http://verify-email.org/<?php    if($_POST['email'] != ''){        // The email to validate        $email = $_POST['email'];        // An optional sender        function domain_exists($email, $record = 'MX'){            list($user, $domain) = explode('@', $email);            return checkdnsrr($domain, $record);        }        if(domain_exists($email)) {            echo('This MX records exists; I will accept this email as valid.');        }        else {            echo('No MX record exists;  Invalid email.');        }    }?><form method="POST">    <input type="text" name="email">    <input type="submit" value="submit"></form>这就是我现在所拥有的。它会检查域是否存在,但无法检查该域上是否存在用户的电子邮件。是否可以使用PHP来做到这一点?
查看完整描述

3 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

如果没有向该帐户发送电子邮件,您无法验证电子邮件是否确实存在。但你可以验证它至少格式化为一个


if(filter_var($email, FILTER_VALIDATE_EMAIL)) {

    //Email is valid

}

如果需要,您可以添加另一个检查。解析域,然后运行checkdnsrr


if(checkdnsrr($domain)) {

     // Domain at least has an MX record, necessary to receive email

}

由于人们不断低估这一点,如果您受到约束并决定验证电子邮件,请注意以下注意事项:


垃圾邮件发送者也会做连接技巧,所以不要假设所有服务器都会以相同的方式响应。另一个答案链接到这个有这个警告的库


某些邮件服务器将默默拒绝测试邮件,以防止垃圾邮件发送者检查其用户的电子邮件并过滤有效的电子邮件,因此此功能可能无法与所有邮件服务器一起正常工作。


因此,如果地址无效,您可能无法获得无效的地址响应。最热门的答案没有提到这一点。


垃圾邮件列表。是的,你可以尝试这样做被列入黑名单(记得我说垃圾邮件发送者也知道这些技巧)。他们按IP地址列入黑名单,如果您的服务器不断进行验证连接,则可能会在Spamhaus或其他阻止列表中清盘。如果您被列入黑名单,那么验证电子邮件地址有什么用呢?


如果验证电子邮件地址非常重要,则接受的方法是强制用户回复电子邮件。向他们发送完整的电子邮件,其中包含他们必须单击以进行验证的链接。这不是垃圾邮件,你仍然可以验证它是否有效。


查看完整回答
反对 回复 2019-08-31
  • 3 回答
  • 0 关注
  • 1267 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信