AjaxForm не отправляет письмо

Всем привет! Прошу помощи: на сайте создал всплывающее окно, открывающееся по кнопке, с заказом обратного звонка, всё как обычно, реализовано с помощью ajaxform, вот код вывода сниппета: [[AjaxForm? &snippet=FormIt &form=tpl.AjaxForm &emailTpl=sentEmailTpl &emailSubject=Тестовое сообщение &emailTo=mm@yandex.ru &successMessage=Сообщение успешно отправлено &validate=name:required,email:required &validationErrorMessage=В форме содержатся ошибки! ]] вот чанк tpl.AjaxForm: <h2>ЗАКАЗАТЬ ЗВОНОК</h2>

				<form id="contact" name="contact" action="" method="post" class="ajax_form">
	<label class="control-label" for="af_name">[[%af_label_name]]</label>
		<input type="text" id="af_name" name="name" value="[[+fi.name]]" placeholder="" class="span4" /><br />
		<span class="error_name">[[+fi.error.name]]</span>
	<label class="control-label" for="af_email">[[%af_label_email]]</label>
		<input type="email" id="af_email" name="email" value="[[+fi.email]]" placeholder="" class="span4" /><br />
		<span class="error_email">[[+fi.error.email]]</span>

					<button type="submit" class="btn btn-primary">[[%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>
`]]
				</form> вот чанк sentEmailTpl: [[+name]] <br />

[[+email]] <br /> [[+message]] Всё валидируется, пишет, что письмо отправлено, но на почту ничего не приходит! Друзья, проверьте, пожалуйста, код, возможно у меня уже глаз замылился и я не вижу простейшей ошибки? Подскажите, в какую сторону можно копать? Ещё момент: на сайте реализован отдельный php-скрипт отправки почты — он работает без проблем… возможно, необходимо покопаться в настройках formIt или ajaxForm, просто я не смог найти нужных параметров… разумеется, почту забил правильно — тысячу раз проверил!))) Подскажите, пожалуйста, буду очень признателен!

Может все-таки не кешируемым сниппет прописать? [[!AjaxForm… А так подобные вещи уже обсуждались не раз здесь, мы AjaxForm не используем, а используем form-процессор.

Николай, благодарю за оперативный ответ! К сожалению, не помогло...(

Мне кажется, что тут сам formIt не отрабатывает… просто не догоняю, как это можно проверить!

Судя по тому, что страница выводит «Внимание! Телефон может содержать только цифры.», все-таки сам сниппет отрабатывает. Скорее всего просто с сайта почта на отправляется. Поставьте Console и проверьте в принципе отправку почты, выполнив два отдельных кода:

  1. Просто через функцию mail() print (int)mail('test@some.host', 'subject', 'message'); 2. Через MODX: print (int)$modx->user->sendEmail('message'); Желательно, чтобы оба варианта вернули 1. Просто есть подозрение, что ваш сервер просто не отправляет почту. В остальном, я вам больше ничем не помогу. Там так все замучено (AjaxForm использует еще FormIt, в итоге отлаживать надо и то и другое), что даже я, потратив 15 минут, не смог получить вменяемого результата. Все-таки процессоры прозрачней, там отладка лучше.

Спасибо, Николай, буду копать!))

Не за что!

Если еще актуально. Нахожу вашу проблему похожей на мое приключение В вызове сниппета добавьте добавьте хук «email». &hooks=email

Не знаю, ответит ли кто-то нибудь мне здесь или нет. Выполнил в консоли 2 команды, вернули 1, только после второй не пришло письмо (интересно, на какой адрес оно отправилось?) У меня стоит в ajaxform &hooks=email, но письмо всё равно не приходит. Пробовал отдельно formit делать, письмо приходит, но хотелось бы без перезагрузки страницы через ajaxform запустить. У меня на другом сайте письма отправляются нормально через ajaxform, при том, что оба сайта на одном сервере находятся.

vladim-filip, дайте хоть на код взглянуть))) Какой вызов сниппета, какой чанк? И что значит: "вернули один"?

Николай выше писал: " Поставьте Console и проверьте в принципе отправку почты, выполнив два отдельных кода: 1. Просто через функцию mail() print (int)mail('test@some.host', 'subject', 'message'); 2. Через MODX: print (int)$modx->user->sendEmail('message'); Желательно, чтобы оба варианта вернули 1." Вот тут у меня возвращается 1 в обоих вариантах. Вот код вызова сниппета: [[!AjaxForm? &snippet=FormIt &form=vogelCallbackFormTpl &hooks=spam,FormItSaveForm,email &formName=Обратный звонок &formFields=name,phone &fieldNames=name==Имя,phone==Телефон &emailSubject=Заявка на обратный звонок с сайта VogelAndNootCenter &emailTo=vfilippov@engne.ru &emailBCC=vladim-filip@yandex.ru &emailFrom=info@vogelnootcenter.ru &emailFromName=VogelAndNootCenter &emailTpl=vogelCallbackMailTpl &customValidators=isCaptchaValid &validate=name:required:minLength=^1^:maxLength=^30^,phone:required:minLength=^7^:maxLength=^20^,pers_data:required,captcha1:isCaptchaValid &validationErrorMessage=Пожалуйста, исправьте ошибки! ]] Вот код формы vogelCallbackFormTpl:

Ё-моё. Разобрался. У меня в &validate идёт поле captcha1, а в форме captcha просто называется. Теперь всё работает.