Как забрать данные с формы и отравить их письмом на определённую почту?

Есть сайт на MODX Revo 2.6.1-p, установлены FormIt и AjaxForm. Пытаюсь с помощью AjaxForm обработать форму, отправить письмо и при этом через FormIt записать обращение в админку. Вроде всё делал по мануалу, но тщетно(
В шаблон страницы запихиваю следующее:
[[!AjaxForm? 
   &form=`test.form` 
   &snippet=`FormIt` 
   &hooks=`email`
   &emailSubject=`Тестовое сообщение`
   &emailTo=`ivermak@mail.ru`
   &emailFrom=`ivermak@mail.ru`
   &emailTpl=`test_email`
   &validate=`FIO:minLength=^2^,email:email:required`
   &validationErrorMessage=`В форме содержатся ошибки!`
   &successMessage=`Сообщение успешно отправлено`
]]
При этом форму AjaxForm выводит, даже происходит какая-то обработка, НО когда ввожу КОРРЕКТНЫЕ данные в форму — ругается, говоря «Форма содержит ошибки» (не «В форме содержатся ошибки!», как записано в validationErrorMessage, а именно это), а когда вместо чанка «test.form» ставлю стандартный чанк «tpl.AjaxForm.example» от AjaxForm — говорит «Форма успешно отправлена», а не «Сообщение успешно отправлено», при этом письмо ТОЖЕ НЕ отправляется и данные в админку ТОЖЕ НЕ уходят… Теряюсь в догадках, что и как это может быть… Никакие правки в AjaxForm и FormIt не вносил, всё стандартно. Подскажите пожалуйста, что делаю не так???
Вот ещё код чанка формы:
<form method="post" class="main_form ajax_form">
	<div class="form-wrap">
		<div class="form-header">
			Анкета
		</div>
		<div class="form-body">
			<label for="position">*Желаемая должность</label>
			
			<input type="text" id="position" name="position" class="long-input" placeholder="Например, повар" value="[[+fi.position]]">
			<span class="error error_position">[[+fi.error.position]]</span>
			
			<label for="FIO">*Ваши фамилия, имя и Отчество</label>
			
			<input type="text" id="FIO" name="FIO" placeholder="ФИО" class="long-input" value="[[+fi.FIO]]">
			<span class="error error_FIO">[[+fi.error.FIO]]</span>
			<div class="form-contacts">
			<div>
			<label for="phone">*Ваш номер телефона</label>
			
			<input type="text" id="phone" name="phone" placeholder="+7 (999) 999-99-99" class="short-input" value="[[+fi.phone]]">
			<span class="error error_phone">[[+fi.error.phone]]</span>
			</div>
			<div>
			<label for="email">*Ваш e-mail</label>
			
			<input type="text" id="email" name="email" placeholder="example@mail.ru" class="short-input" value="[[+fi.email]]">
			<span class="error error_email">[[+fi.error.email]]</span>
			</div>
			<div>
			<label for="birthday">*Дата рождения</label>
			
			<input type="text" id="birthday" name="birthday" placeholder="1 марта 1992 года" class="short-input" value="[[+fi.birthday]]">
			<span class="error error_birthday">[[+fi.error.birthday]]</span>
			</div>
			<div>
			<label for="grade">*Образование</label>
			
			<input type="text" id="grade" name="grade" placeholder="Например: высшее, Инженер" class="short-input" value="[[+fi.grade]]">
			<span class="error error_grade">[[+fi.error.grade]]</span>
			</div>
			</div>
			
			<label for="place">*Место проживания: город, улица, дом, квартира</label>
			
			<input type="text" id="place" name="place" placeholder="Владивосток, Борисенко 22, 45" class="long-input" value="[[+fi.place]]">
			<span class="error_place">[[+fi.error.place]]</span>
			
			<p class="">Место работы в обратном порядке</p>
			<div class="jobs">
				<div>
					<label for="fired-date1">Дата приема/увольнение</label>
					
					<input type="text" id="fired-date1" name="fired-date1" placeholder="20.03.2015 / 20.04.2016" class="short-input"  value="[[+fi.fired-date1]]">
					<span class="error_fired-date1">[[+fi.error.fired-date1]]</span>
				</div>
				<div>
					<label for="organization1">Название организации</label>
					
					<input type="text" id="organization1" name="organization1" placeholder="И.П. Гниломедов" class="short-input"  value="[[+fi.organization1]]">
					<span class="error_organization1">[[+fi.error.organization1]]</span>
				</div>
				<div>
					<label for="fired-position1">Должность</label>
					
					<input type="text" id="fired-position1" name="fired-position1" placeholder="Водитель" class="short-input" value="[[+fi.fired-position1]]">
					<span class="error_fired-position1">[[+fi.error.fired-position1]]</span>
				</div>
				<div>
					<label for="fired-date2">Дата приема/увольнение</label>
					
					<input type="text" id="fired-date2" name="fired-date2" placeholder="20.03.2015 / 20.04.2016" class="short-input" value="[[+fi.fired-date2]]">
					<span class="error_fired-date2">[[+fi.error.fired-date2]]</span>
				</div>
				<div>
					<label for="organization2">Название организации</label>
					
					<input type="text" id="organization2" name="organization2" placeholder="И.П. Гниломедов" class="short-input" value="[[+fi.organization2]]">
					<span class="error_organization2">[[+fi.error.organization2]]</span>
				</div>
				<div>
					<label for="fired-position2">Должность</label>
					
					<input type="text" id="fired-position2" name="fired-position2" placeholder="Водитель" class="short-input" value="[[+fi.fired-position2]]">
					<span class="error_fired-position2">[[+fi.error.fired-position2]]</span>
				</div>
			</div>
		</div>
		<!--<input type="submit" name="submit" class="submit-button" action="">-->
		<button type="submit" name="submit" class="submit-button">[[%af_submit]]</button>
		[[+fi.success:is=`1`:then=`
		<div class="alert alert-success">[[+fi.successMessage]]</div>
		`]]
		[[+fi.validation_error:is=`1`:then=`
		<div class="alert alert-danger">[[+fi.validation_error_message]]</div>
		`]]
		<p class="vacancies-header">*Звездочкой помечены поля, обязательные для заполнения</p>
		<p class="vacancies-header">**Заполняя анкету, Вы даете согласие на обработку персональных данных</p>
	</div>
</form>
А это код чанка письма (возвращаю всего 1 поле для теста, чтобы все не писать):
<h3>Сообщение</h3>
<p>От кого: [[+fi.FIO]]</p>
<p>E-mail: </p>
<p>Телефон: </p>
<p>Сообщение: </p>
Илья
24 февраля 2018, 05:17
modx.pro
1 461
0

Комментарии: 8

Михаил
24 февраля 2018, 08:21
+1
Что бы сохранить в админку, у Formit есть хук FormItSaveForm
    Илья
    24 февраля 2018, 08:26
    0
    Добавил — толку 0, ничего не попало даже со стандартной формы AjaxForm.(( А что может быть с отправкой письма?
      Михаил
      24 февраля 2018, 08:37
      0
      AjaxForm это просто обертка.
        Илья
        24 февраля 2018, 09:06
        0
        Спасибо, конечно, но в чём может быть проблема?
          Михаил
          24 февраля 2018, 09:26
          +1
            Илья
            24 февраля 2018, 09:54
            0
            Спасибо, буду знать, что код верный. Но теперь я вообще в ступоре: тоже самое у тебя работает, а у меня — нет… Проверил логи самого MODX-а, там сие значится:
            "[FormIt] Произошла ошибка при попытке отправить почту. Невозможно запустить функцию mail.".
            Поискал инфу — может быть с хостом какие-то проблемы, ну да ладно, это можно отложить временно. Решил убрать хук отправки письма — ошибок в логах нет, и обращение тоже упало в FormIt, ура! Я читал, что если один из хуков вернул ошибку — все ПОСЛЕДУЮЩИЕ не выполнятся, но не думал, что ВООБЩЕ все не выполнятся, вне зависимости от их порядка выполнения.
            Большое спасибо, уже дня 2 бьюсь с этим! Не подскажете ещё с вопросом: как мне получить в MODX файл, который пользователь прикрепляет (другая форма)???
              Михаил
              24 февраля 2018, 10:06
              0
              Так написано же Невозможно запустить функцию mail.

              Нету почты на хостинге, либо не включена. Подключите smtp и все
                Илья
                24 февраля 2018, 10:07
                0
                Да, я уже догадался, спасибо)
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    8