2

我在通过Symfony 电子邮件约束验证用户电子邮件地址然后尝试通过Swiftmailer向该用户发送邮件时遇到问题。

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

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

给定邮箱中的地址 [name@@gmail.com] 不符合 RFC 2822, 3.6.2。

来自 Swiftmailer 本身。

4

1 回答 1

5

您可以strict在 Symfony 的 EmailValidator 中启用该模式,例如:

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

正如文档所说:

使用 egulias/email-validator 库执行符合 RFC 的验证。您需要安装该库才能使用此模式。

SwiftMailer 也使用了 egulias/email-validator(请参阅 Swiftmailer 的composer.jsonPathHeader因此这应该会给您类似的验证结果。

于 2020-01-09T13:54:16.460 回答