Форма заявки (рабочий пример)
Журнал отправки (так вижу сам)
Ожидаю заявку…
Почему на таких лендингах заявки не уходят
На обычном хостинге форма чаще всего вызывает встроенный mail(), а письма с него режут Gmail и Яндекс или хостер блокирует порт. Что проверяю по порядку:
- 1Работает ли
mail()и какую версию PHP отдаёт хостинг (нужен 7.4 и выше, расширения openssl и mbstring). - 2Куда смотрит
actionформы: статичный html без PHP-обработчика заявку не отправит вообще. - 3Подключаю PHPMailer и отправку через SMTP вашего почтового ящика (порт 465/587, а не mail()).
- 4Прописываю SPF и DKIM для домена, чтобы письма не падали в спам.
- 5Защита от спама: скрытое поле и лимит отправок с одного адреса.
- 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(); // результат пишется в логС чем работаю


