Форма на сайте не отправляет письмо — как исправить

Если форма обратной связи на сайте «съедает» заявки и письма не приходят на почту, чаще всего дело не в самой форме, а в том, как сервер сайта отправляет письмо: либо PHP-функция mail() отключена хостингом, либо письмо блокируется как спам, либо неверно указан адрес получателя в коде формы.

Почему письма не доходят

Самая частая причина — использование стандартной функции mail() в PHP. Многие хостинги её ограничивают или требуют настройки SPF/DKIM для домена, иначе почтовые серверы получателя (особенно Gmail и Mail.ru) отправляют письмо в спам или отклоняют его вовсе. Вторая по частоте причина — опечатка в адресе получателя в настройках плагина или скрипта формы. Третья — сама форма технически не отправляется: не срабатывает JavaScript-валидация, не работает antispam/captcha, или обработчик формы (action) указывает на несуществующий файл.

Как проверить, где именно проблема

  • Отправьте тестовое сообщение и посмотрите папку «Спам» в почтовом ящике — часто письма просто попадают туда.
  • Откройте консоль браузера (F12 → Network) при отправке формы: если запрос уходит с кодом 200, проблема на стороне почты, если с ошибкой 4xx/5xx — проблема в скрипте на сервере.
  • Если сайт на WordPress, проверьте, установлен ли плагин SMTP (WP Mail SMTP и подобные) — без него письма часто теряются на хостингах с ограничениями.
  • Уточните у хостинг-провайдера, разрешена ли функция mail() и не нужно ли подключать внешний SMTP.

Как настроить надёжную отправку

Самый устойчивый вариант — отказаться от стандартной mail() и настроить отправку через SMTP стороннего почтового сервиса (Яндекс.Почта, Gmail, Mailgun, SendGrid). Для этого потребуется указать в настройках формы или плагина SMTP-сервер, порт, логин и пароль (или пароль приложения). Дополнительно стоит прописать для домена сайта SPF-запись и, если возможно, DKIM — это снижает вероятность попадания писем в спам.

Если форма перестала работать после обновления CMS или темы, проверьте, не изменился ли путь к обработчику формы (action) и не конфликтует ли новый код с плагином отправки почты — иногда после обновления настройки SMTP сбрасываются на дефолтные.

Понравилась статья? Поделиться с друзьями: