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=`Сообщение от посетителя сайта` !]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=`Сообщение успешно отправлено` ]]Как Вы, уважаемые коллеги, решали бы эту напасть?
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. Он как раз и будет заниматься отправкой письма пользователю.
- [[!FormIt?
- &hooks=`spam,email,emailUser,redirect`
- &emailTo=`YOUR-EMAIL`
- &emailSubject=`CONTACT FORM: [[+subject]]`
- &emailFromName=`[[+name]]`
- &emailTpl=`ContactTpl`
- &redirectTo=`6`
- ]]
- <div>[[+fi.error.error_message]]</div>
- <form action="[[~[[*id]]]]" method="post">
- <input type="hidden" name="nospam:blank" value="" />
- <div>
- <label for="name">Name: </label>
- <input type="text" name="name:required" value="[[+fi.name]]" />
- <span>[[+fi.error.name]]</span>
- </div>
- <div>
- <label for="name">Email: </label>
- <input type="text" name="email:email:required" value="[[+fi.email]]" />
- <span>[[+fi.error.email]]</span>
- </div>
- <div>
- <label for="subject">Subject: </label>
- <input type="text" name="subject:required:stripTags" value="[[+fi.subject]]" />
- <span>[[+fi.error.subject]]</span>
- </div>
- <div>
- <label for="message">Message: </label><span>[[+fi.error.message]]</span> <br/>
- <textarea name="message:required:stripTags" cols="55" rows="7">[[+fi.message]]</textarea>
- </div>
- <div>
- <input type="submit" value="Send" name="Submit"/>
- </div>
- </form>
Чанк с шаблоном уведомления о новом сообщении ContactTpl содержит следующий код:
- Сообщение от [[+name]] ([[+email]]) было отправлено через форму обратной связи:
- <br/>
- [[+message:nl2br]]
Чанк с шаблоном уведомления пользователю о том, что он оставил сообщение ConfirmationTpl:
- <p>
- Здравствуйте, [[+name]],<br/>
- Мы получили Ваше сообщение и постараемся ответить как можно быстрее.
- </p>
- <p>
- Ваше сообщение:<br/>
- [[+message:nl2br]]
- </p>
Теперь переходим к сниппету emailUser:
- <?php
- //настройки
- $mailFrom = $modx->getOption('emailsender'); //от кого;
- $mailFromName = $modx->getOption('site_name'); //название сайта;
- $mailSender = $modx->getOption('site_name'); //или имя отправителя;
- $mailSubject = 'Тема сообщения';
- $mailReplyTo = $mailFrom;
- //эти данные передаются в чанк извне
- $confirmationFields['message'] = $scriptProperties['fields']['message'];
- $confirmationFields['name'] = $scriptProperties['fields']['name'];
- //e-mail пользователя
- $mailTo= $scriptProperties['fields']['email'];
- $message = $modx->getChunk('ConfirmationTpl', $confirmationFields);
- $modx->getService('mail', 'mail.modPHPMailer');
- $modx->mail->set(modMail::MAIL_BODY,$message);
- $modx->mail->set(modMail::MAIL_FROM,$mailFrom);
- $modx->mail->set(modMail::MAIL_FROM_NAME,$mailFromName);
- $modx->mail->set(modMail::MAIL_SENDER,$mailSender);
- $modx->mail->set(modMail::MAIL_SUBJECT,$mailSubject);
- $modx->mail->address('to',$mailTo);
- $modx->mail->address('reply-to',$mailReplyTo);
- $modx->mail->setHTML(true);
- if (!$modx->mail->send()) {
- $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$err);
- return false;
- }
- $modx->mail->reset();
- 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>[[!+fi.error.error_message]]</p> <br /> <form method="post" action="[[~[[*id]]]]"> <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="[[+fullname]]" /> <div>[[!+fi.error.fullname]]</div> </td> </tr> <tr> <td>Адрес*:</td> <td> <input name="address" size="30" type="text" value="[[+fi.address]]" /> <div>[[!+fi.error.address]]</div> </td> </tr> <tr> <td>E-mail*:</td> <td> <input name="email" size="30" type="text" value="[[+fi.email]]" /> <div>[[!+fi.error.email]]</ div> </td> </tr> <tr> <td>Телефон*:</td> <td> <input name="phone" size="30" type="text" value="[[+fi.phone]]" /> <div>[[!+fi.error.phone]]</div> </td> </tr> <tr> <td>Способ доставки*:</td> <td> <select name="shk_delivery"> [[+shk_delivery]] </select> </td> </tr> <tr> <td>Способ оплаты*:</td> <td> <select name="payment"> <option value="При получении" [[!+fi.payment:FormItIsSelected=`При получении`]]>При получении</option> <option value="robokassa" [[!+fi.payment:FormItIsSelected=`robokassa`]]>Электронные деньги</option> </select> </td> </tr> <tr> <td>Комментарий:</td> <td> <textarea name="message" rows="4" cols="30">[[!+fi.message]]</textarea> </td> </tr> <tr> <td></td> <td><input type="submit" name="submit_button" value="Отправить" /></td> </tr> </table> </fieldset> </form>modx.pro