#Что происходит и как определить неисправность
Письмо восстановления пароля в WordPress может не доходить из-за отключённого системного почтового транспорта, блокировки отправки, неверного адреса учётной записи или фильтрации на стороне получателя. Сначала нужно отличить сбой отправки от доставки и не раскрыть существование чужого аккаунта.
#Вероятные причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| PHP wp_mail не может передать письмоPHP wp_mail не может передать письмо. Журнал почтового транспорта показывает ошибку отправки | Журнал почтового транспорта показывает ошибку отправки | Проверить разрешённый способ исходящей почты на хостинге. |
| Отправлено, но не доставленоОтправлено, но не доставлено. Сервер принял письмо, получатель не видит его | Сервер принял письмо, получатель не видит его | Проверить журнал доставки, SPF/DKIM/DMARC, спам-фильтр. |
| Адрес пользователя или ограничения не соответствуют ожиданиюАдрес пользователя или ограничения не соответствуют ожиданию. Письмо отправляется не в тот ящик или запрос ограничен | Письмо отправляется не в тот ящик или запрос ограничен | Проверить учётную запись администратором с правами. |
#Пошаговая диагностика и исправление
- Проверьте адрес и форму без раскрытия учётных записейОткройте https://ваш-домен/wp-login.php?action=lostpassword, укажите свой проверяемый адрес и отправьте один запрос. Запишите время и нейтральный результат. Не выясняйте методом перебора, какие сторонние пользователи зарегистрированы.
- Проверьте почтовый ящик получателяОткройте «Спам», «Рассылки», «Все письма» и поиск по домену отправителя, посмотрите правила перенаправления/фильтры. Если письмо есть в спаме, переместите его в нужную папку; не добавляйте неизвестные адреса в глобальный белый список.
- Сверьте реальный адрес пользователяАдминистратор с необходимыми правами открывает Пользователи → Все пользователи → нужный профиль и проверяет адрес электронной почты. Не меняйте его на сторонний ради теста. Учтите: изменение адреса может требовать подтверждения в зависимости от действий и версии WordPress.
- Смотрите журнал исходящей почты по времениВ панели хостинга найдите журналы отправки, SMTP или журнал плагина отправки почты, если он установлен. Ищите событие по времени, коду SMTP и получателю, не публикуйте адреса и токены. Если SMTP возвращает успешное принятие, дальнейшая доставка зависит от получающего сервера.
- Проверьте механизм отправки WordPressWordPress использует wp_mail, который без специального транспорта обычно опирается на инфраструктуру PHP/сервера. Если хостер не предоставляет исходящую почту, запросите поддерживаемый SMTP/API-транспорт и учётные данные у администратора; не вводите пароль в публичные плагины или код репозитория.
- Проверьте подлинность домена отправителяОткройте у поставщика почты настройки домена и статус SPF, DKIM и DMARC. Если отсутствует подпись или отправитель не соответствует домену, письма могут попадать в спам. Изменения DNS делайте только после проверки текущих записей; не добавляйте второй конфликтующий SPF.
- Изолируйте конфликт почтовых расширенийНа тестовой копии отключите только новый плагин SMTP или изменённый фильтр wp_mail и повторите безопасную проверку, если журнал указывает на них. Если отправка восстановилась, настройте поддерживаемый способ и после теста верните защитные ограничения.
- Повторите сброс с конечного адресаПроверьте получение одного письма, откройте только свою одноразовую ссылку восстановления и убедитесь, что она работает без 404 и с правильным HTTPS-доменом. Ссылку и токен никому не передавайте; после теста смените пароль только своей учётной записи.
#Как проверить результат
Письмо приходит в тестовый ящик, ссылка корректна, заголовки домена проходят ожидаемые проверки и процедура восстановления меняет пароль без нарушения безопасности.
#Если не помогло
Если сервер вообще не отправляет, выясняйте транспорт и авторизацию; если отправка принята, но нет письма — исследуйте доставку и спам; не маскируйте проблему увеличением количества повторов.