Symfonys2 EmailValidator checkMX的可靠性如何?

时间:2015-12-17 17:34:37

标签: php validation symfony mx-record

与标题一样,此检查的可靠程度如何。

https://github.com/symfony/symfony/blob/3.0/src/Symfony/Component/Validator/Constraints/EmailValidator.php#L139-L142

世界上每一台服务器的MX记录都暴露在世界上吗? 或者是否有可能存在隐藏其MX记录的服务器,即使电子邮件有效,检查也会失败。

更新

我已经检查过Symfony文档和来源。 我知道并且我已经测试过只检查过电子邮件域,而不是用户部分。 我只是不知道它有多可靠。是否始终可以检查服务器MX记录。

3 个答案:

答案 0 :(得分:1)

此验证程序仅检查电子邮件中的DNS用户是否有效,例如,如果您设置此电子邮件fail@google.com,即使此电子邮件未退出,也会验证该电子邮件。

答案 1 :(得分:0)

http://symfony.com/doc/current/reference/constraints/Email.html#checkmx

使用PHP的checkdnsrr函数以及checkMX选项完成checkHost选项。您还可以设置strict选项并包含egulias/email-validator库以实现更严格的限制。在确定电子邮件地址是否有效时,使用这些选项应该是完全充分和可靠的。

答案 2 :(得分:0)

从经验来看,从理论上讲似乎是个好主意,实际上在大多数情况下都可以使用,但是有时由于网络问题等导致MX查找失败,然后电子邮件将返回无效,然后导致插入正确电子邮件的用户感到沮丧。

这继而导致开发人员不得不花时间研究出了什么问题。

此外,如果用户放入虚假电子邮件,他们所要做的就是使用真实域和虚假用户(例如fbjdsbafjkbsdjafj @ gmail.com),因此其用途有限。

在99.9%的情况下,使用已建立的电子邮件检查库(而不是自己动手),无需进行mx查找就可以检查电子邮件的格式是否正确