Hibernate @email 不关心域或 FQDN

Hibernate @email doesn't care about domain or a FQDN

使用Spring 启动休眠。我在 poko

里有这样的东西
@Email
private String email;

这些示例输入:

我收到以下错误,这是预期的:

email: not a well-formed email address.

但是对于这个输入:

这算是可以的。 Hibernate 不关心域吗? (.com、.io、.company)?

PS:在此日期使用,最新版本在这里:https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator/6.0.9.Final

如果您向名为 a.

的本地主机发送电子邮件,

fakeemail@a 可被视为有效域

一般来说,在电子邮件验证中,我们会接受更多严格有效的东西,以避免报告有效案例的错误。

如果您想要更严格,可以使用 @Email 注释的 regexp 属性在域中添加一个需要点的正则表达式。

如您所见Wikipedia

Valid email addresses:

  • simple@example.com
  • very.common@example.com
  • disposable.style.email.with+symbol@example.com ...
  • admin@mailserver1 (local domain name with no TLD, although ICANN highly discourages dotless email addresses)

最常见的无点电子邮件地址是 localhost(例如 root@localhost)。

但是,如果您有兴趣,可以制作 your own custom @Email annotation