Соответствие и проверка по электронной почте с RF C 2822, 3.6.2 в Symfony - PullRequest
1 голос
/ 09 января 2020

У меня проблема при проверке адреса электронной почты пользователя через Symfony Ограничение электронной почты , а затем при попытке отправить письмо этому пользователю через Swiftmailer .

Допустим, мой пользователь регистрируется с name @@ gmail.com (двойной @ является умышленной опечаткой для примера). Это успешно подтверждено проверкой ограничения почты в Symfony, и пользователь создается в моей базе данных.

Но когда я пытаюсь отправить письмо с помощью Swiftmailer, я получаю ошибку 500

Адрес в почтовом ящике, указанный [name @@ gmail.com], не соответствует RFC 2822, 3.6.2.

от самого Swiftmailer.

1 Ответ

3 голосов
/ 09 января 2020

Вы можете включить режим strict в EmailValidator Symfony , например, так:

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

Как сказано в документации:

Использует библиотеку egulias / email-validator для проверки соответствия RF C. Вам необходимо установить эту библиотеку, чтобы использовать этот режим.

egulias / email-validator также используется SwiftMailer (см. composer Swiftmailer *. * 1023). * и PathHeader ), поэтому вы должны получить аналогичные результаты проверки.

...