Когда письмо для сброса пароля не приходит, пользователь не может восстановить доступ, а поддержка получает ручные обращения.

Восстановление пароля - критичный сценарий личного кабинета. Он должен быть надежным, но не раскрывать, существует ли email в базе.

Коротко: нужно проверить создание токена, отправку письма, SMTP, доставляемость и безопасность формы.

Почему это ломается

Письмо не приходит из-за неправильного SMTP, проблем SPF/DKIM/DMARC, попадания в спам, неработающей очереди, ошибки шаблона, неверного домена в ссылке, просроченного токена или отсутствия пользователя.

Что проверяю первым

  • создается ли токен восстановления
  • отправляет ли сайт письмо через SMTP
  • что пишут логи почты
  • проходят ли SPF/DKIM/DMARC
  • правильный ли домен в ссылке восстановления

Как проходит исправление

Я проверяю восстановление пароля как безопасный процесс: запрос, токен, письмо, ссылка, новая форма пароля и инвалидирование старых токенов.

  • исправляю SMTP и доменные записи
  • чиню генерацию и срок жизни токена
  • исправляю шаблон письма и ссылку
  • проверяю очередь отправки
  • добавляю безопасные сообщения формы

Что подготовить

  • страницу восстановления
  • пример email для теста
  • логи отправки
  • почтовый сервис домена
  • доступ к коду или админке

Какой результат нужен

Письмо должно приходить, ссылка должна работать один раз в ограниченное время, а старые токены должны становиться недействительными.

Чего лучше не делать

Не сообщайте в форме напрямую, есть ли такой email в базе. Это может раскрывать список пользователей.

Вопросы и ответы

Почему письмо в спаме?

Нужно проверить SPF, DKIM, DMARC, From-адрес и содержание письма.

Почему ссылка сразу просрочена?

Может быть ошибка времени сервера, срока токена или повторной генерации.

Можно ли отправлять через сторонний SMTP?

Да, часто это надежнее, если правильно настроить домен и подписи.

Нужно ли завершать активные сессии после сброса?

Для безопасности обычно стоит инвалидировать старые сессии или хотя бы дать такую возможность.

Нужна похожая задача?

Напишите в Telegram @rabotator_support или оставьте заявку на сайте. Коротко опишите проблему, приложите ссылку, скриншот или лог ошибки, и я подскажу, с чего безопасно начать исправление.

Итог

Восстановление пароля должно быть одновременно удобным и безопасным: почта, токен, ссылка и сообщения формы должны работать согласованно.