Сначала отделите ошибку формы от ошибки почты

Форма должна зафиксировать заявку независимо от того, удалось ли отправить уведомление. В логах полезно иметь два отдельных результата: заявка сохранена и SMTP accepted.

Где искать проблему

СимптомПроверка
Форма 500PHP/backend log
Форма success, SMTP connection errorhost/port/TLS/firewall
SMTP 535логин/пароль/метод auth
SMTP accepted, Gmail не видит письмоSPF/DKIM/DMARC/PTR/reputation/spam
одит только на часть доменовDNS/authentication/policy receiving side

Проверить DNS домена

BASH
dig +short MX example.com
dig +short TXT example.com
dig +short TXT _dmarc.example.com

# selector замените на реальный:
dig +short TXT selector1._domainkey.example.com

SPF, DKIM и DMARC решают разные задачи

  • SPF сообщает, какие серверы могут отправлять почту от домена;
  • DKIM подписывает сообщение ключом домена;
  • DMARC задаёт политику и проверяет alignment домена From с SPF/DKIM.

Для стабильной доставки лучше настраивать все три механизма, а не ограничиваться SPF.

Проверьте From, Return-Path и PTR

Частая ошибка сайта — отправка письма с адресом посетителя в поле From. Лучше использовать адрес собственного домена, а email клиента передавать в Reply-To. Для собственного SMTP важен корректный PTR/reverse DNS.

Проверить соединение с SMTP без отправки пароля

BASH
openssl s_client -starttls smtp -connect smtp.example.com:587 -servername smtp.example.com

# Закройте соединение:
QUIT

Что записывать в лог приложения

Не логируйте пароль SMTP. Сохраняйте timestamp, message-id, адрес получателя, SMTP host, код ответа и краткий текст ошибки. Этого обычно достаточно, чтобы понять, где остановилась доставка.

Скачать набор диагностики

RuJul Site Diagnostics — один ZIP

Связанные инструкции

Как различить сбой SMTP и проблемы доставки

Сначала проверьте, формирует ли сайт письмо и получил ли SMTP-сервер команду отправки. Успешный SMTP-ответ означает принятие сервером, но не гарантирует появление сообщения во «Входящих». Далее изучите bounce-уведомления и логи, корректность SPF, DKIM, DMARC, выравнивание домена From и репутацию отправителя.

Для форм заявок полезно хранить отдельный идентификатор заявки, чтобы не потерять обращение при задержке доставки. Не публикуйте пароли SMTP и токены в диагностических скриншотах.