AjaxForm: не отправляет письма
Добрый день. Документацию читала, Formit письма отправляет, AjaxForm ошибок не выдает — пишет что сообщение отправлено, но писем нет. Домен русскоязычный — хотя вряд ли это влияет.
Вот вызов:
Вот вызов:
[[!AjaxForm?
&snippet=`FormIt`
&form=`test`
&emailTpl=`email.tpl`
&emailSubject=`Новогодняя ночь`
&emailTo=`site@site.ru`
&validate=`name:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено`
]]
Чанк mytpl.AjaxForm<form action="" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank">
<input type="text" id="af_name" name="name" value="[[+fi.name]]" placeholder="Имя" required class="span4" />
<span class="error_name">[[+fi.error.name]]</span>
<input type="phone" id="af_phone" name="phone" value="[[+fi.email]]" placeholder="Телефон" required class="span4" />
<span class="error_phone">[[+fi.error.phone]]</span>
<button type="submit" class="btn btn-inverse">[[%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>
email.tpl тоже имеется. Комментарии: 13
<form action="[[~[[*id]]]]" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank">
<input type="text" id="af_name" name="name" value="[[+fi.name]]" placeholder="Имя" required class="span4" />
<span class="error_name">[[+fi.error.name]]</span>
<input type="text" id="af_phone" name="phone" value="[[+fi.phone]]" placeholder="Телефон" required class="span4" />
<span class="error_phone">[[+fi.error.phone]]</span>
<button type="submit" class="btn btn-inverse">[[%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>
action="[[~[[*id]]]]" поставила, результат тот же((
Вы что не видите, что не в нем дело? весь код скопируйте
Ваш код
А этот код, что бы форма проходила валидацию
Ваш код
<input type="phone" id="af_phone" name="phone" value="[[+fi.email]]" placeholder="Телефон" required class="span4" />
Мой код<input type="text" id="af_phone" name="phone" value="[[+fi.phone]]" placeholder="Телефон" required class="span4" />
А этот код, что бы форма проходила валидацию
[[~[[*id]]]]
А смысл? Второе поле даже в валидации не прописано. Пишет что успешно отправлено, письма нет.
Спасибо, что указали на опечатку. Проблема не решена.
Спасибо, что указали на опечатку. Проблема не решена.
Ну, каких то вопиющих ошибок в коде/вызове я не обнаружил, разве что:
Если у вас возвращается положительный ответ, то, скорее всего проблема не в форме (тем более, что ajaxform просто обертка для обработки formlt), а в последующих действиях:
— попадает ли что-нибудь в лог?
— есть ли ошибки в консоли?
— чем у вас отправляются письма — smtp?
— возможно, письма просто ушли в спам?
+ могу еще поррекомендовать выставить &emailFrom и &hooks=`email` — на некоторых хостингах замечал такую багу, что без его указание форма обрабатывалась некорректно.
И да, напрямую к делу не относится, просто интересуюсь — у вас корректно отрабатывает этот код:
name="phone" value="[[+fi.email]]"
— насторожило.Если у вас возвращается положительный ответ, то, скорее всего проблема не в форме (тем более, что ajaxform просто обертка для обработки formlt), а в последующих действиях:
— попадает ли что-нибудь в лог?
— есть ли ошибки в консоли?
— чем у вас отправляются письма — smtp?
— возможно, письма просто ушли в спам?
+ могу еще поррекомендовать выставить &emailFrom и &hooks=`email` — на некоторых хостингах замечал такую багу, что без его указание форма обрабатывалась некорректно.
И да, напрямую к делу не относится, просто интересуюсь — у вас корректно отрабатывает этот код:
[[+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>
`]]
Да, забыла написать в логе тоже пусто. Как и в консоли. В спаме тоже пусто. Никаких особенных настроек для почты в modx я не делала. Точно такая же форма на другом сайте обрабатывается нормально — собственно оттуда и копировала. Хостинг reg.ru
email мне вообще не нужен — это форма для заказа обратного звонка.
&emailFrom — тут тоже почту поставить? Поставила, не работало
Код отрабатывается, поля на заполненность проверяет.
email мне вообще не нужен — это форма для заказа обратного звонка.
&emailFrom — тут тоже почту поставить? Поставила, не работало
Код отрабатывается, поля на заполненность проверяет.
Точно такая же форма на другом сайте обрабатывается нормально
Тогда, скорее всего, проблема в хостере — у них может банально стоять антиспам-модуль, запрет на отправку писем с тестового хостинга и тд и тп — вариантов удивить у них всегда хватает…Попробуйте отправить тестовое письмо вот этим, чтобы узнать наверняка.
Fromit отправляет. Хостинг не тестовый, домен только русскоязычный.
QuickEmail тоже работает.
и скиньте код этого чанка email.tpl
<h3>Сообщение с сайта <a href="[[+site_url]]">[[++site_name]]</a></h3>
<p><b>Имя</b>: [[+name]]</p>
<p><b>Телефон</b>: [[+phone]]</p>
Понятно все
добавьте &hooks=`email`
добавьте &hooks=`email`
[[!AjaxForm?
&snippet=`FormIt`
&form=`test`
&hooks=`email`
&emailTpl=`email.tpl`
&emailSubject=`Новогодняя ночь`
&emailTo=`site@site.ru`
&validate=`name:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено`
]]
А вот это сработало. Спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.