php - 是否应使用使用 DNS/MX 记录的电子邮件验证?

标签 php email forms validation

我注意到大多数用于电子邮件验证的脚本不使用 DNS 信息来确保给定域确实存在。

人们可能不使用 DNS 检查的原因是什么?

它是否真的减少了虚假电子邮件的数量或使表单更有用?

示例片段:

$host = explode('@', $email);
if(checkdnsrr($host[1].'.', 'MX') ) return true;
if(checkdnsrr($host[1].'.', 'A') ) return true;
if(checkdnsrr($host[1].'.', 'CNAME') ) return true;

最佳答案

大多数网站,尤其是保留登录信息的网站,都会在您注册后发送确认电子邮件。这不仅确认电子邮件地址有效,而且确认电子邮件地址属于提交者。进行 DNS 查找是多余的,除非您想提醒用户他们拼错了电子邮件地址。

如果我想输入一个假的电子邮件地址,aaa@aaa.com(AAA,汽车俱乐部)和 somebody@example.com(来自 RFC 2606)都可以通过。我认为 DNS 查找不会像您想象的那样捕获那么多假地址。

关于php - 是否应使用使用 DNS/MX 记录的电子邮件验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1112163/

相关文章:

PHP:将数据数组拆分为字母顺序

php - MySQL日期操作帮助

laravel - Mailgun:从本地服务器上托管的本地 Laravel 项目发送电子邮件时出错(基于 LAN)

forms - 如何恢复自动创建表单列表和 DPR 初始化代码之间的同步?

javascript - 在 Django 中,如何在通过错误返回文件输入后保留文件输入的值?

php - 如何比较 Auth::user()->id 和 userid 并在 Laravel 中运行 if else 命令

php - 在 PHP 中验证输入后将表单数据重定向/发布到站点

linux - 如何从命令行发送电子邮件?

linux - 如何用linux最快的方式发送邮件

javascript - Polymer Iron-form 不提交