mg15 03 октября 2015 2 7
Всем привет!

Прошу помощи: на сайте создал всплывающее окно, открывающееся по кнопке, с заказом обратного звонка, всё как обычно, реализовано с помощью 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, просто я не смог найти нужных параметров…

разумеется, почту забил правильно — тысячу раз проверил!)))

Подскажите, пожалуйста, буду очень признателен!
7 комментариев
Fi1osof1
Fi1osof 03 октября 2015г в 13:47 #
Может все-таки не кешируемым сниппет прописать? [[!AjaxForm…
А так подобные вещи уже обсуждались не раз здесь, мы AjaxForm не используем, а используем form-процессор.
m
mg15 03 октября 2015г в 13:54 #
Николай, благодарю за оперативный ответ! К сожалению, не помогло...(
m
mg15 03 октября 2015г в 13:55 #
Мне кажется, что тут сам formIt не отрабатывает… просто не догоняю, как это можно проверить!
Fi1osof1
Fi1osof 03 октября 2015г в 14:44 #
Судя по тому, что страница выводит «Внимание! Телефон может содержать только цифры.», все-таки сам сниппет отрабатывает. Скорее всего просто с сайта почта на отправляется.
Поставьте Console и проверьте в принципе отправку почты, выполнив два отдельных кода:
1. Просто через функцию mail()
print (int)mail('test@some.host', 'subject', 'message');


2. Через MODX:
print (int)$modx->user->sendEmail('message');


Желательно, чтобы оба варианта вернули 1. Просто есть подозрение, что ваш сервер просто не отправляет почту.

В остальном, я вам больше ничем не помогу. Там так все замучено (AjaxForm использует еще FormIt, в итоге отлаживать надо и то и другое), что даже я, потратив 15 минут, не смог получить вменяемого результата. Все-таки процессоры прозрачней, там отладка лучше.

m
mg15 03 октября 2015г в 14:46 #
Спасибо, Николай, буду копать!))
Fi1osof1
Fi1osof 03 октября 2015г в 14:47 #
Не за что!
e
exist17 06 октября 2015г в 12:31 #
Если еще актуально. Нахожу вашу проблему похожей на мое приключение
В вызове сниппета добавьте добавьте хук «email».
&hooks=`email`
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.