Оnправка формы без formit

Всем привет. Извините за дурацкий вопрос.
На сайте нужно отправлять простейшую форму, ставить FormIt не хочется просто так :) Хочется сделать по своему. Без MODx отправил бы постом на файл скрипта типа такого
<?php
if((isset($_POST['phone'])&&$_POST['phone']!="")){
        $to = 'email@gmail.com';
        $subject = 'Заявка с сайта'; 
        $message = '
                <html>
                    <head>
                        <title>Заказ с сайта</title>
                    </head>
                    <body>
                        <p>Имя: '.$_POST['name'].'</p>
                        <p>Телефон: '.$_POST['phone'].'</p>                        
                    </body>
                </html>';
        $headers  = "Content-type: text/html; charset=utf-8 \r\n"; 
        $headers .= "From: Отправитель <no-reply@site.ru>\r\n"; 
        mail($to, $subject, $message, $headers);
}
?>
Могу сделать сниппет такой, потом ресурс, и отправлять на ресурс, но это ведь вообще не правильно в MODx.

Подскажите пожалуйста, как сделать сниппет в идеологии MODX что бы отправить данные из формы этому сниппету?
Михаил
13 июля 2016, 12:37
modx.pro
1 729
0

Комментарии: 3

Павел
13 июля 2016, 15:51
+1
Да всё также, как и на простом php. Вызываешь сниппет с этим скриптом на той же странице, где и форма. Саму форму отправляешь постом на текущею страницу.
<form action="" method="POST">
Страница после чего перезагружается и сниппет отрабатывает.
    Илья Уткин
    13 июля 2016, 16:59
    +2
    У MODX есть настройки почты. Например, в системных настройках есть раздел SMTP — если его заполнить, почта будет отправляться через SMTP.

    Если ты хочешь учитывать системные настройки, можно воспользоваться таким скриптом: https://ilyaut.ru/reposts/sending-mail-through-modmail/
      Захарий
      14 июля 2016, 11:40
      +1
      Ну если хочется аж тру MODX идеологию, то rtfm.modx.com/revolution/2.x/developing-in-modx/advanced-development/modx-services/modmail
      $message = $modx->getChunk('myEmailTemplate');
       
      $modx->getService('mail', 'mail.modPHPMailer');
      $modx->mail->set(modMail::MAIL_BODY,$message);
      $modx->mail->set(modMail::MAIL_FROM,'me@example.org');
      $modx->mail->set(modMail::MAIL_FROM_NAME,'Johnny Tester');
      $modx->mail->set(modMail::MAIL_SUBJECT,'Check out my new email template!');
      $modx->mail->address('to','user@example.com');
      $modx->mail->address('reply-to','me@xexample.org');
      $modx->mail->setHTML(true);
      if (!$modx->mail->send()) {
          $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
      }
      $modx->mail->reset();
      Не знаю, актуально ли еще это. Все отправляю через mail() или smtp.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        3