Validation of email addresses is one of those never-ending debates among
developers. Some argue that you can’t truly validate them programmatically and
that you must always send a confirmation email. Others argue that RFC 5322
compliant programmatic validation is enough for real-world applications.
Symfony always made this choice yours with the
strict option of the
Email validation constraint. When
false, the email address is validated
against a simple regular expression. If
true, a RFC compliant validation is
done using the egulias/email-validator third-party library.
However, the regular expression used to validate email addresses was too simple.
That’s why in Symfony 4.1 we decided to start using the same
email validation done by HTML5. In practice, we’ve deprecated the
option in favor of a new
mode option with these values:
loose: uses a simple regular expression to find the most obvious mistakes
(not including a
@character, etc.). It’s like the previous
strict = false.
strict: performs the RFC compliant validation and requires to install the
egulias/email-validator library. It’s like the previous
strict = true.
html5uses the same regular expression of the HTML5 specification. It’s
the best balanced value, providing fast and good validation without requiring
When using the Validator component inside a Symfony application, you can set
the email address validation mode with the new
# config/packages/framework.yaml framework: validation: # possible values: 'loose', 'strict', 'html5' email_validation_mode: 'html5'