#Описание и признаки неисправности
После перемещения сайта под другого пользователя хостинга веб-формы завершаются без видимой ошибки, но письма больше не приходят. Причиной могут быть изменившийся SMTP-секрет, несуществующий почтовый ящик, ограничение исходящей почты по учётной записи или неверная идентификация отправителя. Нужно разделить проблемы формирования письма, передачи SMTP/локальному агенту и доставки получателю; успешный вызов mail() не гарантирует доставку.
#Как отличить возможные причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Конфигурация SMTP перенесена не полностьюПароль, адрес сервера и токены остались от старой учётной записи. | Почтовый модуль CMS пишет Authentication failed / 535. | Создать/проверить легитимные реквизиты новой учётной записи. |
| Письмо принимает локальная почта, но не доставляетОчередь или политика отправителя задерживает/отклоняет сообщения. | В журнале почты deferred, rejected, relay access denied. | Исправить маршрут и согласованный адрес отправителя. |
| Доставка есть, но письмо не видно в папке ВходящиеSPF/DKIM/DMARC, спам-фильтр или адрес получателя изменились. | У провайдера статус delivered, в ящике «Спам» либо сервер получателя отклонил. | Проверить DNS-подпись и журнал конкретного сообщения. |
#Пошаговая диагностика и решение
- Снимите исходные настройки и проверьте работу самой формыВ панели откройте карточку перенесённого сайта и его файловый менеджер, сохраните резервную копию настроек почтового модуля CMS. Через браузер отправьте одну пробную заявку с уникальной темой, без персональных данных, запишите точное время и адрес получателя. Если форма не сохраняет заявку или выдаёт HTTP 500, сначала исправьте PHP/права, а не почту. Не повторяйте отправку десятки раз.
- Проверьте журнал приложения, не раскрывая паролиВ административной панели CMS найдите журнал отправки почты или ошибок; если у модуля есть диагностический режим, включите его только для администратора и отключите после пробы. Различайте «SMTP authentication failed», «Connection timed out», «Sender rejected», «Message accepted». Успешный
mail()означает лишь передачу системному обработчику, а не получение письма адресатом. - Найдите различия после переноса пользователяВ панели хостинга откройте почтовые домены, ящики и ограничения исходящих сообщений для новой учётной записи. Сравните существование адреса отправителя, имя SMTP-сервера, порт, TLS и логин с настройками CMS, не выписывая секреты. При переносе между серверами могли измениться IP, разрешённые способы авторизации, путь к локальному sendmail и значение
From. - Проверьте DNS и право отправки от доменаВ интерфейсе управления DNS проверьте SPF, DKIM и DMARC для домена отправителя; записи должны соответствовать фактически используемому почтовому сервису. Не добавляйте несколько независимых SPF TXT-записей: корректно объединяйте разрешённые источники. Если письма отправляет сторонний SMTP-провайдер, добавляйте только рекомендации его официальной документации и проверяйте DKIM через панель провайдера.
- Проверьте системный почтовый агент, если он используетсяДля Debian/Ubuntu с Postfix администратор может выполнить
sudo systemctl status postfix,sudo postqueue -pиsudo journalctl -u postfix --since "30 minutes ago". Если Postfix не установлен или сайт использует внешний SMTP, эти команды неприменимы: проверяйте журнал SMTP-плагина. В выводе ищите статус конкретного пробного сообщения и код ответа принимающей стороны; не очищайте почтовую очередь без согласования.Linux · Терминал (Bash)КомандаНужен sudoДля сервера с Postfix; чтение состояния, очереди и журнала. Если локального Postfix нет, не запускайте: используйте журнал внешнего SMTP.sudo systemctl status postfixsudo postqueue -psudo journalctl -u postfix --since "30 minutes ago" - Исправьте отправку через контролируемый SMTPЕсли проблема в реквизитах, откройте в CMS настройки почты/SMTP и введите действительный адрес, сервер, порт и соответствующий способ шифрования TLS из кабинета почтового провайдера. Пароль приложения или секрет создавайте через провайдера, а не используйте пароль администратора панели, если он не предназначен для SMTP. Настройки сохраняйте лишь после сверки получателя и адреса отправителя; не отключайте проверку сертификата.
- Отличите задержку в очереди от отклонения получателемПосле исправления отправьте один тест. Если журнал говорит
queuedилиdeferred, откройте причину задержки (DNS, тайм-аут соединения, отклонение) и исправьте только её. Еслиsent/deliveredот исходящего сервера, попросите адресата проверить папку «Спам» и заголовки полученного письма; в некоторых случаях последующая фильтрация всё равно возможна. При постоянных 550/554 согласуйте репутацию и DNS с провайдером. - Проверяйте формы и откатывайте только изменённоеОткройте сайт как обычный посетитель, отправьте безвредную пробную форму, убедитесь, что сообщение появилось в назначенном ящике и не содержит лишних персональных данных. Если исправление нарушило отправку, восстановите сохранённые настройки SMTP, не публикуя пароль в отчёте. При переносе доменов/ящиков не возвращайте DNS к старому серверу без оценки потери входящей почты.
#Проверка результата и дальнейшие действия
Успех — пробная форма регистрирует обращение, почтовый сервер подтверждает приём сообщения, письмо появляется у получателя без ошибок аутентификации и повторных отправок. Если отправляющая система приняла письмо, но оно не доставлено, изучите код SMTP-ответа и обратитесь к почтовому провайдеру с идентификатором сообщения без содержания письма и паролей.