На сайте размещены несколько форм обратной связи, где указывается имя и телефон, реализованы формы на связке Formit и AjaxForm.
Вверсия CMS MODX Revolution 2.7.2-pl.
Код вставки снипета для формы
[[!AjaxForm? &snippet=`FormIt` &hooks=`email` &form=`tpl.form2` &emailTpl=`form.email.tpl` &emailSubject=`Сообщение "[[++site_name]]"` &emailTo=`[[++email]]` &emailFrom=`[[++email]]` &emailFromName=`[[++site_name]]` &submitVar=`2` &validate=`name:required,phone:required` &successMessage=`Ваша заявка отправлена<br>Мы свяжимся с Вами в ближайшее время!` &validationErrorMessage=`В форме содержатся ошибки! Проверьте поля формы!` ]]
При отправки формы вываливается сообщение «Форма содержит ошибки», и этот текст, как видно из примера, не установлен в validationErrorMessage
Проверил работу функции mail(), через отдельный скрипт, вдруг она не работает, но нет, функция рабочая и письмо отсылается.
Так вот, для обнаружения причины ошибки использовал QuickEmail. Установил его и активировал через админку, для это есть в MODx «Менеджер пакетов».
Открываем шаблон где используется форма, и добавляем следующий код в конце страницы
<!-- [[!QuickEmail? &to=`[[++email]]` &debug=`1` ]] -->
где, [[++email]] — переменная где хранится почта,
или можно ввести почту так: &to=`my-email@email.ru`
Вызов сниппета обрамил комментарием для того чтобы не светить инфу на экране, для не посвященных пользователей, так и каробить внешний вид сайта не будет.
После открываем страницу, где размещен сниппет, и смотрим в коде, информацию по отправке почты.
Весь отчет выданный QuickEmail выкладывать не буду, так как в нем находится конфиденциальная информация, скажу только что в отчете указывается какие данные используются для передачи письма на почтовый сервер, и в моем случае, оказывается почта шла по SMTP (параметры для подключения были в отчете), и сообщение о результате отправки
Ошибка SMTP: ошибка авторизации.
Исходя из этих данных, сразу становится понятным, какая причина в том что письма не уходят.