Форма на html-лендинге отправляет заявки

Стенд показывает, как будет работать ваш лендинг после починки: заявка уходит по SMTP через PHPMailer, спам режет скрытое поле, каждая отправка пишется в журнал. Тематика условная, под ваши формы и адреса настрою на вашем хостинге.

Форма заявки (рабочий пример)

Журнал отправки (так вижу сам)

Ожидаю заявку…

Почему на таких лендингах заявки не уходят

На обычном хостинге форма чаще всего вызывает встроенный mail(), а письма с него режут Gmail и Яндекс или хостер блокирует порт. Что проверяю по порядку:

  1. 1Работает ли mail() и какую версию PHP отдаёт хостинг (нужен 7.4 и выше, расширения openssl и mbstring).
  2. 2Куда смотрит action формы: статичный html без PHP-обработчика заявку не отправит вообще.
  3. 3Подключаю PHPMailer и отправку через SMTP вашего почтового ящика (порт 465/587, а не mail()).
  4. 4Прописываю SPF и DKIM для домена, чтобы письма не падали в спам.
  5. 5Защита от спама: скрытое поле и лимит отправок с одного адреса.
  6. 6Тестовая отправка с каждой формы на нужные адреса и скриншот полученного письма.

Как выглядит обработчик (упрощённо)

<?php
use PHPMailer\PHPMailer\PHPMailer;
require 'vendor/autoload.php';
if (!empty($_POST['hp'])) exit;           // скрытое поле: бот
$m = new PHPMailer(true);
$m->isSMTP(); $m->Host = 'smtp.ваш-домен';
$m->SMTPAuth = true; $m->SMTPSecure = 'ssl'; $m->Port = 465;
$m->setFrom('адрес-отправителя', 'Заявка с сайта');
$m->addAddress('адрес-получателя');
$m->Subject = 'Новая заявка';
$m->Body = "Имя: {$_POST['n']}\nКонтакт: {$_POST['p']}\n{$_POST['m']}";
$m->send();                              // результат пишется в лог

С чем работаю

Рабочее место разработчика: код на монитореКоманда разработчиков за обсуждением проектаРазработчики проверяют код на мониторе