MODx Revo Отправка подтверждения по почте в FormIt. Formit modx revo не отправляет письма


[Решено] eForm не отправляет письма / Вопросы / MODX.im

Для тех кому интересно решение — создал ящик на хостинге — на него получилось отправить.

Доброго времени суток всем. Я маленько профан и сайт делал по урокам Ефимова, но немного соображаю. Такая вот проблема. Написал код для вызова eForm со странички Контакты — для обратной связи. Страница дочерняя от главной (вроде правильно выразился), у неё самой дочерних нет. Код приведу ниже. Вобщем заполняю форму, ввожу капчу, нажимаю отправить — выход сообщение об успешной отправке — но письмо на почту не приходит. Вот и не понимаю в чем дело. Версия REVO или EVO не знаю у меня какая. Знаю только что 1.0.7. Может кто подскажет как посмотреть?

Вот так вызываю со страницы

Вы можете связаться с нами через форму обратной связи Пожалуйста, оставьте своё сообщение {{form}}

Чанк form

[!eForm? &formid=`contact-form` &tpl=`form-tpl` &to=`[email protected]` &mailselector=`otdel` &report=`report-tpl` &thankyou=`thank-tpl` &vericode=`1` &subject=`Сообщение от посетителя сайта` !]

Чанк form-tpl

<div> [+validationmessage+] <form method="post" action="[~[*id*]~]"> <input type="hidden" name="formid" value="contact-form" /> <p><label accesskey="n" for="name">Ваше имя</label> <input type="text" name="name" size="40" maxlength="60" eform="Имя::1" /></p> <p><label accesskey="e" for="email">Электронный ящик</label> <input type="text" name="email" size="40" maxlength="40" eform="Адрес электронной почты:email:1" /></p> <p><label accesskey="s" for="otdel">Тема сообщения</label> <select name="otdel" > <option value="1">Запрос информации</option> <option value="2">Дирекция</option> <option value="3">Техническая поддержка</option> </select></p> <p><label accesskey="c" for="comments">Текст сообщения</label> <textarea cols="40" rows="10" name="comments" eform="Текст сообщения:html:1" ></textarea></p> <p>Введите этот код:<br /> <img src="[+verimageurl+]" alt="Код проверки" border="1"/> <input type="text" name="vericode" /> </p> <p><input type="submit" name="submit" value="Отправить"></p> </form> </div>Чанк report-tpl<p>Это сообщение было отправлено посетителем по имени [+name+] с помощью формы обратной связи. </p> <table> <tr valign="top"><td><b>Имя:</b></td><td>[+name+]</td></tr> <tr valign="top"><td><b>Email:</b>:</td><td>[+email+]</td></tr> <tr valign="top"><td><b>Сообщение:</b></td><td>[+comments+]</td></tr> </table> <p>Вы можете использовать эту ссылку для ответа: <a href="mailto:[+email+]?subject=RE:[+subject+]">[+email+]</a></p>

Чанк thank-tpl

<strong>Спасибо, что воспользовались формой обратной связи на нашем сайте.</strong> <p>Ваше сообщение будет рассмотрено нашими менеджерами в кратчайшие сроки, и, если оно требует ответа, Вы обязательно его получите.</p> <p>Отправленная информация:</p> <ul> <li><b>Ваше имя:</b> [+name+]</li> <li><b>Ваш e-mail:</b> [+email+]</li> <li><b>Текст сообщения:</b> [+comments+]</li> </ul>

Заранее благодарю за помощь в указании моей ошибки.P.S. Плагина Strict URLs у меня нет.

modx.im

Не приходят письма из формы

Всем добрый вечер. Когда подобная проблема была на 1 сайте, я списала все на проблемы хостера, но проблема вернулась на другом хостинге! И даже на третьем сайте в англоязычной версии. Все формы немного различаются, здесь же выкладываю последнюю из них. Как Вы понимаете, ВСЕ логи пусты, иначе бы я не задавала этого странного вопроса. Письмо отправляется, выпадает сообщение об успехе и все. Тишина… Сайты в версии 2.4.2 и 2.4.4 Вызов обычный:[[!AjaxForm? &snippet=`FormIt` &form=`form-contact` &hooks=`email, recaptchav2` &emailSubject=`Сообщение с сайта` &emailTo=`[email protected]` &validate=` name:required:minLength=`2`, email:required:minLength=`8`, message:required, recaptchav2:required` &validationErrorMessage=`Заполнены не все обязательные поля!` &successMessage=`Сообщение успешно отправлено` ]]

Чанк, на всякий случай тоже показываю:

<form method="post" enctype="multipart/form-data" autocomplete="off" action=""> <fieldset> <div> <label> <input name="name" placeholder="Ваше имя" value="[[+fi.name]]" required pattern="^[А-Яа-яЁё\s]+${3,30}" type="text"> <span>[[+fi.error.name]]</span> </label> <label> <input type="email" name="email" placeholder="Ваш Email" value=""> <span>[[+fi.error.email]]</span> </label> <label> <textarea name="message" placeholder="Сообщение">[[+fi.message]]</textarea> <span>[[+fi.error.message]]</span> </label> </div> <div> <div> <button type="submit">[[%af_submit]]</button> </div> <div> [[!recaptchav2_render]] [[!+fi.error.recaptchav2_error]] <span></span> </div> </div> </fieldset> [[+fi.success:is=`1`:then=` <div>[[+fi.successMessage]]</div> `]] [[+fi.validation_error:is=`1`:then=` <div>[[+fi.validation_error_message]]</div> `]] </form>

Как Вы, уважаемые коллеги, решали бы эту напасть?

modx.ru

FormIt не выводится сообщение об ошибке и об успешной отправке формы

Добрый день!

Никак не могу разобраться с выводом сообщений об ошибке в случае не заполнения какого-нибудь поля и сообщения об успешной отправке формы. Вот мой код:

[[!FormIt? &hooks=`email` &emailTpl=`sentEmailTpl` &emailSubject=`Сообщение с сайта` &emailTo=`[email protected]` &validate=`kontaktnoe_lico:required, vid_produkcii_ili_uslugi:required, telefon:required` &successMessage=`Сообщение отправлено!` ]] <form enctype="multipart/form-data" action="/[[*alias]]" method="post" accept-charset="UTF-8"> <label for="edit-submitted-vid-produkcii-ili-uslugi">Тема обращения <span title="Обязательно для заполнения.">*</span></label> <select name="vid_produkcii_ili_uslugi" value="[[!+fi.vid_produkcii_ili_uslugi]]"><option value="" selected="selected">- Выберите -</option><option value="zakaz" [[!+fi.vid_produkcii_ili_uslugi:FormItIsSelected=`zakaz`]]>Заказ</option><option value="consult" [[!+fi.vid_produkcii_ili_uslugi:FormItIsSelected=`consult`]]>Консультация</option><option value="sotrudnichstvo" [[!+fi.vid_produkcii_ili_uslugi:FormItIsSelected=`sotrudnichstvo`]]>Сотрудничество</option><option value="usluga4">Другое</option></select> </div> <div> <label for="edit-submitted-kontaktnoe-lico">Контактное лицо * <span title="Обязательно для заполнения.">*</span></label> <span>[[!+fi.error.error_message]]</span> <input placeholder="Контактное лицо *" type="text" name="kontaktnoe_lico" value="[[!+fi.kontaktnoe_lico]]" size="60" maxlength="128" /> </div> <div> <label for="edit-submitted-telefon">Телефон * <span title="Обязательно для заполнения.">*</span></label> <input placeholder="Телефон *" type="text" name="telefon" value="[[!+fi.telefon]]" size="60" maxlength="128" /> </div> <div> <label for="edit-submitted-e-mail">E-mail </label> <input placeholder="Электронная почта" type="text" name="e_mail" value="[[!+fi.e_mail]]" size="60" maxlength="128" /> </div> <div> <label for="edit-submitted-primechaniya">Примечания </label> <div><textarea placeholder="Примечания" name="primechaniya" cols="60" rows="5">[[!+fi.primechaniya]]</textarea></div> </div> <div><input type="submit" name="form1-submit" value="отправить" /></form> <div>Закрыть</div> [[+fi.successMessage]] [[+fi.validation_error_message]] Если заполнить поля, на которых стоит проверка, то письмо приходит, но сообщение об успешной отправке не появляется. Если же не заполнить, хотя бы одно поле, то сообщение не приходит (как и должно быть), но ошибка тоже не отображается.

modx.ru

Отправка подтверждения по почте в MODx Revolution FormIt

Старшие версии FormIt уже наделены описываемым в статье функционалом. Но все же приведенный пример может быть полезен в качестве урока по созданию своих хуков (hoocks).

В качестве примера будем использовать форму обратной связи с четырьмя полями: имя, e-mail, тема и сообщение. При отправке формы FormIt должен будет отправлять 2 письма — администратору сайта и пользователю, оставившему сообщение.Для этого нам понадобится создать новый чанк и новый сниппет. Чанк будет шаблоном для письма, а сниппет будет использовать его для отправки.

Следующий код состоит из двух частей. Вызов сниппета FormIt и непосредственно сама форма. Обатите внимание на передаваемы сниппету в параметрах хук emailUser. Он как раз и будет заниматься отправкой письма пользователю.

  1. [[!FormIt?
  2. &hooks=`spam,email,emailUser,redirect`
  3. &emailTo=`YOUR-EMAIL`
  4. &emailSubject=`CONTACT FORM: [[+subject]]`
  5. &emailFromName=`[[+name]]`
  6. &emailTpl=`ContactTpl`
  7. &redirectTo=`6`
  8. ]]
  9.  
  10. <div>[[+fi.error.error_message]]</div>
  11.  
  12. <form action="[[~[[*id]]]]" method="post">
  13.  
  14. <input type="hidden" name="nospam:blank" value="" />
  15.  
  16. <div>
  17. <label for="name">Name: </label>
  18. <input type="text" name="name:required" value="[[+fi.name]]" />
  19. <span>[[+fi.error.name]]</span>
  20. </div>
  21.  
  22. <div>
  23. <label for="name">Email: </label>
  24. <input type="text" name="email:email:required" value="[[+fi.email]]" />
  25. <span>[[+fi.error.email]]</span>
  26. </div>
  27.  
  28. <div>
  29. <label for="subject">Subject: </label>
  30. <input type="text" name="subject:required:stripTags" value="[[+fi.subject]]" />
  31. <span>[[+fi.error.subject]]</span>
  32. </div>
  33.  
  34. <div>
  35. <label for="message">Message: </label><span>[[+fi.error.message]]</span> <br/>
  36. <textarea name="message:required:stripTags" cols="55" rows="7">[[+fi.message]]</textarea>
  37. </div>
  38.  
  39. <div>
  40. <input type="submit" value="Send" name="Submit"/>
  41. </div>
  42.  
  43. </form>

Чанк с шаблоном уведомления о новом сообщении ContactTpl содержит следующий код:

  1. Сообщение от [[+name]] ([[+email]]) было отправлено через форму обратной связи:
  2. <br/>
  3. [[+message:nl2br]]

Чанк с шаблоном уведомления пользователю о том, что он оставил сообщение ConfirmationTpl:

  1. <p>
  2. Здравствуйте, [[+name]],<br/>
  3. Мы получили Ваше сообщение и постараемся ответить как можно быстрее.
  4. </p>
  5. <p>
  6. Ваше сообщение:<br/>
  7. [[+message:nl2br]]
  8. </p>

Теперь переходим к сниппету emailUser:

  1. <?php
  2. //настройки
  3. $mailFrom = $modx->getOption('emailsender'); //от кого;
  4. $mailFromName = $modx->getOption('site_name'); //название сайта;
  5. $mailSender = $modx->getOption('site_name'); //или имя отправителя;
  6. $mailSubject = 'Тема сообщения';
  7. $mailReplyTo = $mailFrom;
  8.  
  9. //эти данные передаются в чанк извне
  10. $confirmationFields['message'] = $scriptProperties['fields']['message'];
  11. $confirmationFields['name'] = $scriptProperties['fields']['name'];
  12.  
  13. //e-mail пользователя
  14. $mailTo= $scriptProperties['fields']['email'];
  15.  
  16. $message = $modx->getChunk('ConfirmationTpl', $confirmationFields);
  17.  
  18. $modx->getService('mail', 'mail.modPHPMailer');
  19. $modx->mail->set(modMail::MAIL_BODY,$message);
  20. $modx->mail->set(modMail::MAIL_FROM,$mailFrom);
  21. $modx->mail->set(modMail::MAIL_FROM_NAME,$mailFromName);
  22. $modx->mail->set(modMail::MAIL_SENDER,$mailSender);
  23. $modx->mail->set(modMail::MAIL_SUBJECT,$mailSubject);
  24. $modx->mail->address('to',$mailTo);
  25. $modx->mail->address('reply-to',$mailReplyTo);
  26. $modx->mail->setHTML(true);
  27. if (!$modx->mail->send()) {
  28. $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$err);
  29. return false;
  30. }
  31. $modx->mail->reset();
  32. return true;

В сниппете Вы можете изменить данные отправки e-mail. Снипет подставляет данные в чанки и отправляет уведомление на почту.Вот и все, задача выполнена, надеюсь пост будет полезным для Вас.

Запись опубликована в рубрике MODX Revolution с метками mail. Добавьте в закладки постоянную ссылку.

nicecoding.ru

FormIt не выводит [[+fi.email]] / modx.pro

Добрый день! Буквально на днях столкнулся с этой проблемой что нет вывода данных в форму. Дня 3-4 назад все работало. Ниже приведу свой шаблон, уважаемые гуру подскажите плиз в чем проблема?! Сам сайт такой www.mebelforte.ru/korzina.html

[[!Shopkeeper@cart_order_page?propertySetName=`cart_order_page`]]

[[!FormIt? &hooks=`spam,shk_fihook,email,FormItAutoResponder,redirect` &submitVar=`order` &emailTpl=`shopOrderReport` &fiarTpl=`shopOrderReport` &emailSubject=`В интернет-магазине "[[++site_name]]" сделан новый заказ` &fiarFromName=`Мебель Фортэ` &fiarSubject=`Вы сделали заказ в интернет-магазине "[[++site_name]]"` &emailTo=`[[++emailsender]],[email protected]` &redirectTo=`2205` &validate=`address:required,fullname:required,email:email:required,phone:required` &errTpl=` [[+error]]` ]]

<p>&#91;&#91;!+fi.error.error_message&#93;&#93;</p> <br /> <form method="post" action="&#91;&#91;~&#91;&#91;*id&#93;&#93;&#93;&#93;"> <fieldset> <input type="text" name="nospam:blank" value="" /> <input type="hidden" name="order" value="1" /> <table cellpadding="3"> <tr> <td>Ф.И.О.*:</td> <td> <input name="fullname" size="30" type="text" value="&#91;&#91;+fullname&#93;&#93;" /> <div>&#91;&#91;!+fi.error.fullname&#93;&#93;</div> </td> </tr> <tr> <td>Адрес*:</td> <td> <input name="address" size="30" type="text" value="&#91;&#91;+fi.address&#93;&#93;" /> <div>&#91;&#91;!+fi.error.address&#93;&#93;</div> </td> </tr> <tr> <td>E-mail*:</td> <td> <input name="email" size="30" type="text" value="&#91;&#91;+fi.email&#93;&#93;" /> <div>&#91;&#91;!+fi.error.email&#93;&#93;</ div> </td> </tr> <tr> <td>Телефон*:</td> <td> <input name="phone" size="30" type="text" value="&#91;&#91;+fi.phone&#93;&#93;" /> <div>&#91;&#91;!+fi.error.phone&#93;&#93;</div> </td> </tr> <tr> <td>Способ доставки*:</td> <td> <select name="shk_delivery"> &#91;&#91;+shk_delivery&#93;&#93; </select> </td> </tr> <tr> <td>Способ оплаты*:</td> <td> <select name="payment"> <option value="При получении" &#91;&#91;!+fi.payment:FormItIsSelected=&#96;При получении&#96;&#93;&#93;>При получении</option> <option value="robokassa" &#91;&#91;!+fi.payment:FormItIsSelected=&#96;robokassa&#96;&#93;&#93;>Электронные деньги</option> </select> </td> </tr> <tr> <td>Комментарий:</td> <td> <textarea name="message" rows="4" cols="30">&#91;&#91;!+fi.message&#93;&#93;</textarea> </td> </tr> <tr> <td></td> <td><input type="submit" name="submit_button" value="Отправить" /></td> </tr> </table> </fieldset> </form>

modx.pro


Prostoy-Site | Все права защищены © 2018 | Карта сайта