电子邮件验证更改从 grails 2.0.0 升级到 2.4.3

Email validation changed upgrading from grails 2.0.0 to 2.4.3

我的项目最近将 grails 从 2.0.0 升级到 2.4.3。在域对象中,我使用电子邮件验证约束。我在测试中注意到,带有虚假顶级域名(例如 'fake@fakedomain.tld')的电子邮件现在被视为无效。 Grails 文档说它正在使用 Apache Commons EmailValidation class 进行验证。该文档明确指出它 doesn't check for valid tlds.

有没有其他人看到过这个问题,如果有,是否有简单的解决方法?我在允许无效的 tld 或一起删除约束的自定义验证器之间犹豫不决。

Grails v2.4.3 使用的新 Commons Vaidator v1.4.0 似乎有一个未解决的错误 VALIDATOR-338,其中电子邮件地址中的未知 TLD 无效。这只影响 1.4 而不是 Grails 2.0.0 使用的 1.3.1。

目前最快的方法是实施自定义验证器。您甚至可以使用自定义正则表达式(其中有很多 examples 个)。