【问题标题】:How reliable is Symfonys2 EmailValidator checkMX?Symfonys2 EmailValidator checkMX 有多可靠?
【发布时间】:2015-12-17 17:34:36
【问题描述】:

就像标题一样,这个检查有多可靠。

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

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

更新

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

【问题讨论】:

  • mx 检查电子邮件验证被认为是个坏主意。
  • @Dagon 你能扩展一下吗?有些服务器没有 MX 记录,而是使用 MTA 和 A 记录进行电子邮件交换。是这个原因还是还有更多?

标签: php validation symfony mx-record


【解决方案1】:

此验证器仅检查电子邮件中的 DNS 用户是否有效,例如,如果您将此电子邮件设置为 fail@google.com,即使此电子邮件不退出,它也会被验证。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      这反过来又导致开发人员不得不花时间查看问题所在。

      此外,如果用户输入虚假电子邮件,他们只需使用真实域和虚假用户(如 fbjdsbafjkbsdjafj @gmail.com),因此它的用处有限。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-27
        • 2015-03-31
        • 1970-01-01
        • 1970-01-01
        • 2013-12-05
        • 1970-01-01
        • 2011-04-23
        • 2020-07-18
        相关资源
        最近更新 更多