在 Symfony 中使用 RFC 2822、3.6.2 进行电子邮件合规性和验证

Email compliance and validation with RFC 2822, 3.6.2 in Symfony

我在通过 Symfony Email Constraint and then trying to send an mail to this user through Swiftmailer 验证用户电子邮件地址时遇到问题。

假设我的用户正在使用 name@@gmail.com 注册(双 @ 是例子)。这已通过 Symfony 中的电子邮件约束验证成功验证,并且在我的数据库中创建了用户。

但是当我尝试使用 Swiftmailer 发送邮件时,出现 500 错误

Address in mailbox given [name@@gmail.com] does not comply with RFC 2822, 3.6.2.

来自 Swiftmailer 本身。

您可以启用 strict mode in Symfony's EmailValidator,例如像这样:

class Author
{
    /**
     * @Assert\Email(
     *     message = "The email '{{ value }}' is not a valid email.",
     *     mode = "strict"
     * )
     */
    protected $email;
}

正如文档所说:

Uses the egulias/email-validator library to perform an RFC compliant validation. You will need to install that library to use this mode.

egulias/email-validator is also used by SwiftMailer (see Swiftmailer's composer.json and PathHeader),所以这应该会给你类似的验证结果。