Возникла ошибка при отправке электронной почты modx

  1. Главная
  2. Блог
  3. Ошибки, их причины и решения
  4. [FormIt] Ошибка соединения с SMTP-сервером в MODX Revolution

[FormIt] Ошибка соединения с SMTP-сервером в MODX Revolution

Сегодня, после переноса одного из проектов с тестовой площадки на production, перестала работать отправка писем по SMTP через FormIt. Все, что удалось найти в логах это —

[FormIt] Произошла ошибка при попытке отправить почту. Ошибка соединения с SMTP-сервером.

Кроме этого в логах не было ровным счетом ничего. Первое, что пришло на ум — проверить настройки. Они оказались в порядке (не мудрено, ведь я просто перенес сайт с одного хостинга на другой). Следующим шагом стало «гугление» проблемы в интернете, но, к сожалению, ничего внятного по этому поводу найти не удалось ни на русском, ни на английском языке.

Как выяснилось, проблема тут не в FormIt, а в MODX-овском phpmailer. А решилась она заменой версии PHP на хостинге с 5.3 на 5.5. Искать «корень зла» не было времени, а вот решение может еще кому-нибудь поможет.

  • 2016-01-25 20:30:05

Отредактировано: 19 Апреля 2018

QuickEmail можно использовать для отправки писем из какого-либо сниппета, но его основное назначение — диагностика работоспособности функционала отправки почты.

Дополнение устанавливается как и большинство компонентов, через инсталлер MODX. Для использования, просто поместите вызов дополнения на странице сайта.

[[!QuickEmail]]

При просмотре страницы на которой размещен вызов, должна отработать функция отправки сообщения. Если никаких проблем нет, то на почту, указанную при установке cms (можно найти в системных настройках по коду emailsender), должно прийти письмо.

Если ни письма ни ошибки не видно, попробуйте вызвать дополнение так

[[!QuickEmail? &debug=`1`]]

Диагностика проблем электронной почты

Возможные ошибки

  • “Could not instantiate mail function” — на хостинге отключена функция mail();
  • “AUTH failed” — в настройках modx используется отправка с помощью smtp требующая авторизацию. Проверьте правильность доступов, либо используйте mail();
  •  

Отправка почты из сторонних сниппетов

Код ниже можно использовать в сторонних снипетах, но это не лучшее решение, т.к. дополнение обрабатывает кучу информации и лишь затем отправляет почту используя MODX mailer. Гораздо более правильным решением будет — сразу использовать MODX mailer.

$props = array(
    'debug' => '0',
    'hideOutput' => '0',
    'message' => 'Некое сообщение',
    'subject' => 'Какая-то тема',
    'to' => 'someone@somewhere.com',
    'fromName' => 'Кто-то Кто-тович',
    'emailSender' => 'someone@somewhere.com',
    'replyTo' => 'someone@somewhere.com',
    'html' => '1',
    'failureMessage' => '<br /><h3 style=&quot;color:red&quot;>Отправка провалена</h3>',
    'successMessage' => '<br /><h3 style =&quot;color:green&quot;>Почта успешно отправлена</h3>',
    'errorHeader' => '<br />Ошибка почты:',
    'smtpErrorHeader' => '<br />Отчет SMTP-сервера:',
);

$output =  $modx->runSnippet('QuickEmail',$props);
return $output;


Использование MODX Mailer для отправки электронной почты

$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY, 'Some message');
$modx->mail->set(modMail::MAIL_FROM, 'someone@somewhere.com');
$modx->mail->set(modMail::MAIL_FROM_NAME, 'Your Name');
$modx->mail->set(modMail::MAIL_SENDER, 'you@yourdomain.com');
$modx->mail->set(modMail::MAIL_SUBJECT, 'Some Subject');
$modx->mail->address('to', 'somone@somewhere.com', 'UserName');
$modx->mail->address('reply-to', 'you@yourdomain.com');
$modx->mail->setHTML(true);
$sent = $modx->mail->send();
if ($sent) {
    $output = 'Mail Sent';
} else {
    $output = 'Mail Not Sent';
}
return $output;

Описание от разработчика

Здравствуйте друзья!
Попросили подправить форму обратной связи, не отправляет письма.
Вызывается ошибка «Форма содержит ошибки» и красным подсвечивается форма с Почтой, типа адрес почты не правильный или отсутствует…

Форма выводится двумя дополнениями FormIt и AjaxForm
Вот стандартный код который гуляет в сети.

Создаем Чанк tpl.AjaxForm
с кодом

<form action="" method="post" class="ajax_form af_example form-horizontal">
  <div class="control-group">
    <label class="control-label" for="af_name">Имя*</label>
    <div class="controls">
      <input type="text" id="af_name" name="name" value="" placeholder="Введите имя">
      <span class="error_name"></span>
    </div>
  </div>
  <div class="control-group">
    <label class="control-label" for="af_email">E-mail*</label>
    <div class="controls">
      <input type="email" id="af_email" name="email" value="" placeholder="Введите email">
      <span class="error_email"></span>
    </div>
  </div>
  <div class="control-group">
    <label class="control-label" for="af_phone">Телефон</label>
    <div class="controls">
       <input type="text" id="af_phone" name="phone" value="" placeholder="Введите номер телефона">
      <span class="error_phone"></span>
    </div>
  </div>
  <div class="control-group">
    <label class="control-label" for="af_message">Сообщение*</label>
    <div class="controls">
      <textarea id="af_message" name="message" rows="5"></textarea>
      <span class="error_message"></span>
    </div>
  </div>
  <div class="control-group">
    <div class="controls">
      <button type="reset" class="btn btn-default">Очистить</button>
      <button type="submit" class="btn btn-primary">Отправить</button>
    </div>
  </div>
</form>

Вызов сниппета AjaxForm на странице контактов

[[!AjaxForm? 
  &form=`tpl.AjaxForm` 
  &snippet=`FormIt` 
  &hooks=`FormItSaveForm,email`
  &emailSubject=`Тестовое сообщение`
  &emailTo=`myemail@mail.ru`
  &emailFrom=`no-reply@mysite.com`
  &emailTpl=`tpl.email`
  &validate=`name:minLength=^2^,email:email:required,message:minLength=^10^`
  &validationErrorMessage=`В форме содержатся ошибки!`
  &successMessage=`Сообщение успешно отправлено`
]]

Чанк tpl.email с шаблоном самого письма

<h3>Сообщение</h3>
<p>От кого: [[+name]]</p>
<p>E-mail: [[+email]]</p>
<p>Телефон: [[+phone]]</p>
<p>Сообщение: [[+message]]</p>

И не работает, кучу подобный перепробовал, результат тот же.
Подскажите пожалуйста, как решить проблему?
Спасибо!

There is a trouble with email sending in Modx Revolution. Using FormIt plugin, I tried to enable Gmail SMTP at Modx settings list, but the same result. Now SMTP is disabled.

Using this FormIt call:

[[!FormIt? 
     &hooks=`email,redirect`
     &redirectTo=`19`
     &redirectParams=`{"success":"1"}`
     &emailTpl=`feedbackEmailTpl`
     &emailSubject=`New request from [[++site_name]]`
     &emailTo=`***@gmail.com`
     &emailToName=`Support`
     &emailReplyTo=`***@gmail.com`
     &emailFrom=`***@gmail.com`
     &emailFromName=`***@gmail.com`
     &errTpl=`<span class="label label-warning">[[+error]]</span>`
     &validate=`
         name:required:stripTags,
         clientemail:email:required,
         message:required:stripTags
     `
     &clearFieldsOnSuccess=`1`
     &validationErrorMessage=`Error.`
]]

In error.log file:

[2015-06-02 10:33:37] (ERROR @ /var/www/site/core/model/modx/mail/phpmailer/class.phpmailer.php : 893) PHP warning: preg_match(): Compilation failed: internal error: previously-checked referenced subpattern not found at offset 728
[2015-06-02 10:33:37] (ERROR @ /var/www/site/core/model/modx/mail/phpmailer/class.phpmailer.php : 893) PHP warning: preg_match(): Compilation failed: internal error: previously-checked referenced subpattern not found at offset 728
[2015-06-02 10:33:37] (ERROR @ /index.php) [FormIt] Произошла ошибка при попытке отправить почту. Пожалуйста, введите хотя бы один адрес e-mail получателя.

What can be wrong? Is this trouble bound to PHPMailer?

curveball's user avatar

curveball

4,27015 gold badges39 silver badges47 bronze badges

asked Jun 2, 2015 at 8:01

Dmitry's user avatar

This is a PHP bug that affects PHP 5.5.25 and 5.6.9 when run using mod_php with apache. There are a few workarounds until it’s fixed in PHP.

  1. Downgrade PHP to 5.5.24 or 5.6.8
  2. Switch to PHP-FPM instead of mod_php (which is a good idea anyway)
  3. Override the PHPMailer class and change the default email validation method to ‘php’.

This last method would be done like this:

class myMailer extends PHPMailer
{
    public static function validateAddress($address, $patternselect = 'php')
    {
        return parent::validateAddress($address, $patternselect);
    }
}

Then use that subclass instead of the plain PHPMailer class.
The same bug has been affecting various other PHP projects such as Typo3 and SwiftMailer. The bug to track it in PHPMailer is here.

answered Jun 2, 2015 at 9:11

Synchro's user avatar

SynchroSynchro

34.4k15 gold badges79 silver badges99 bronze badges

There is a trouble with email sending in Modx Revolution. Using FormIt plugin, I tried to enable Gmail SMTP at Modx settings list, but the same result. Now SMTP is disabled.

Using this FormIt call:

[[!FormIt? 
     &hooks=`email,redirect`
     &redirectTo=`19`
     &redirectParams=`{"success":"1"}`
     &emailTpl=`feedbackEmailTpl`
     &emailSubject=`New request from [[++site_name]]`
     &emailTo=`***@gmail.com`
     &emailToName=`Support`
     &emailReplyTo=`***@gmail.com`
     &emailFrom=`***@gmail.com`
     &emailFromName=`***@gmail.com`
     &errTpl=`<span class="label label-warning">[[+error]]</span>`
     &validate=`
         name:required:stripTags,
         clientemail:email:required,
         message:required:stripTags
     `
     &clearFieldsOnSuccess=`1`
     &validationErrorMessage=`Error.`
]]

In error.log file:

[2015-06-02 10:33:37] (ERROR @ /var/www/site/core/model/modx/mail/phpmailer/class.phpmailer.php : 893) PHP warning: preg_match(): Compilation failed: internal error: previously-checked referenced subpattern not found at offset 728
[2015-06-02 10:33:37] (ERROR @ /var/www/site/core/model/modx/mail/phpmailer/class.phpmailer.php : 893) PHP warning: preg_match(): Compilation failed: internal error: previously-checked referenced subpattern not found at offset 728
[2015-06-02 10:33:37] (ERROR @ /index.php) [FormIt] Произошла ошибка при попытке отправить почту. Пожалуйста, введите хотя бы один адрес e-mail получателя.

What can be wrong? Is this trouble bound to PHPMailer?

curveball's user avatar

curveball

4,27015 gold badges39 silver badges47 bronze badges

asked Jun 2, 2015 at 8:01

Dmitry's user avatar

This is a PHP bug that affects PHP 5.5.25 and 5.6.9 when run using mod_php with apache. There are a few workarounds until it’s fixed in PHP.

  1. Downgrade PHP to 5.5.24 or 5.6.8
  2. Switch to PHP-FPM instead of mod_php (which is a good idea anyway)
  3. Override the PHPMailer class and change the default email validation method to ‘php’.

This last method would be done like this:

class myMailer extends PHPMailer
{
    public static function validateAddress($address, $patternselect = 'php')
    {
        return parent::validateAddress($address, $patternselect);
    }
}

Then use that subclass instead of the plain PHPMailer class.
The same bug has been affecting various other PHP projects such as Typo3 and SwiftMailer. The bug to track it in PHPMailer is here.

answered Jun 2, 2015 at 9:11

Synchro's user avatar

SynchroSynchro

34.4k15 gold badges79 silver badges99 bronze badges

логи
[2015-04-10 16:49:22] (ERROR @ /assets/components/ajaxform/action.php) [FormIt] Произошла ошибка при попытке отправить почту. Пустое тело сообщения

[[!AjaxForm?
                &snippet=`FormIt`
                &hooks=`spam,email`
                &form=`contactForm`
                &emailTpl=`sentContactEmailTpl`
                &emailSubject=`Заявка с сайта `
                &emailTo=`мояпочта@gmail.com`
                &validate=`orderform_name:required,orderform_email:required`
                &validationErrorMessage=`Необходимо заполнить обязательные поля!`
                &successMessage=`Сообщение успешно отправлено`
            ]]

страница action.php

    <?php

define('MODX_API_MODE', true);
require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/index.php';

$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget('FILE');

// Switch context if need
if (!empty($_REQUEST['pageId'])) {
    if ($resource = $modx->getObject('modResource', $_REQUEST['pageId'])) {
        if ($resource->get('context_key') != 'web') {
            $modx->switchContext($resource->get('context_key'));
        }
    }
}

/** @var AjaxForm $AjaxForm */
$AjaxForm = $modx->getService('ajaxform','AjaxForm',$modx->getOption('ajaxform_core_path',null,$modx->getOption('core_path').'components/ajaxform/').'model/ajaxform/', array());

if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
    $modx->sendRedirect($modx->makeUrl($modx->getOption('site_start'),'','','full'));
}
elseif (empty($_REQUEST['af_action'])) {
    echo $AjaxForm->error('af_err_action_ns');
}
else {
    echo $AjaxForm->process($_REQUEST['af_action'], $_REQUEST);
}

@session_write_close();

чанк

<td style="width: 580px;" bgcolor="#ffffff">
                            <h1 style="font-family: Ubuntu, Arial, Helvetica, sans-serif; font-size: 24px; text-align: center;"><font face="Ubuntu, Arial, Helvetica, sans-serif" color="#000000">Заказ звонка!</font></h1>
                            <p style="padding: 10px; font-size: 16px;">
                                <font face="Ubuntu, Arial, Helvetica, sans-serif" color="#000000">
                                    Имя: [[+orderform_name]]<br />
                                    E-mail: [[+orderform_email]]<br />
                                </font>
                            </p>
                            <p style="padding: 10px; font-size: 16px;">
                                <font face="Ubuntu, Arial, Helvetica, sans-serif" color="#000000">
                                    Сообщение: [[+orderform_message]]
                                </font>
                            </p>
                        </td>

заметил вот что, на главной сверху обратный звонок такой

     [[!FormIt?
&hooks=`email`
&emailTpl=`sentEmailTpl`
&emailSubject=`Message from Learn MODx Revo Website`
&emailTo=`моя почта@gmail.com`
]]
                <div class=" col-lg-2 col-md-2 col-sm-6 col-xs-12">
                    <div class="callbak_phone"><button data-target="#callback" data-toggle="modal" title="Заказать обратный звонок" type="submit" class="btn btn-default">Заказать обратный звонок</button>

                    </div>
                </div>

в футере есть

 <!-- callback -->
    <div class="modal fade" id="callback" tabindex="-1" role="dialog" aria-labelledby="callbackLabel" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
            <h4 class="modal-title" id="callbackLabel">Заказать обратный звонок</h4>
          </div>
          <div class="modal-body">
            [[!AjaxForm?
                &snippet=`FormIt`
                &hooks=`spam,email`
                &form=`callbackForm`
                &emailTpl=`sentEmailTpl`
                &emailSubject=`Заказ звонка с сайта `
                &emailTo=`моя почта@gmail.com`
                &validate=`callbackform_name:required,callbackform_phone:required`
                &validationErrorMessage=`Необходимо заполнить все поля!`
                &successMessage=`Сообщение успешно отправлено`
            ]]

          </div>
        </div>
      </div>
    </div>

    <!-- callback -->
    <div class="modal fade" id="orderForm" tabindex="-1" role="dialog" aria-labelledby="orderFormLabel" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
            <h4 class="modal-title" id="orderFormLabel">Заявка на объект</h4>
          </div>
          <div class="modal-body">
            [[!AjaxForm?
                &snippet=`FormIt`
                &hooks=`spam,email`
                &form=`orderForm`
                &emailTpl=`sentOrderEmailTpl`
                &emailSubject=`Заявка с сайта`
                &emailTo=`моя почта@gmail.com`
                &validate=`orderform_name:required,orderform_email:required,orderform_product_name:required`
                &validationErrorMessage=`Необходимо заполнить все поля!`
                &successMessage=`Сообщение успешно отправлено`
            ]]

          </div>
        </div>
      </div>
    </div>

и вот сам чанк sentEmailTpl

       [[!FormIt?
&hooks=`email`
&emailTpl=`sentEmailTpl`
&emailSubject=`Message from Learn MODx Revo Website`
&emailTo=`моя почта@gmail.com`
]]
                    <table>
                        <tbody>
                        <tr>
                            <td style="width: 10px"></td>
                            <td style="width: 580px;" bgcolor="#ffffff">
                                <h1 style="font-family: Ubuntu, Arial, Helvetica, sans-serif; font-size: 24px; text-align: center;"><font face="Ubuntu, Arial, Helvetica, sans-serif" color="#000000">Заказ звонка!</font></h1>
                                <p style="padding: 10px; font-size: 16px;">
                                    <font face="Ubuntu, Arial, Helvetica, sans-serif" color="#000000">
                                        Имя: [[+callbackform_name]]<br />
                                        Телефон: [[+callbackform_phone]]<br />
                                    </font>
                                </p>
                            </td>
                            <td style="width: 10px"></td>
                        </tr>
                        </tbody>
                    </table>
                </td>
            </tr>

меня смущает &emailTpl=sentEmailTpl т.е. tpl он ставит свой

[[FormIt? 
      &hooks=`email`
      &emailSubject=`Сообщение с сайта`
      &emailTo=`myemail@ya.ru`
      &emailFrom=`[[++mail_smtp_user]]`
      &emailTpl=`emailTpl`
      &validate=`name:minLength=^2^,email:email:required,message:minLength=^10^`
      &validationErrorMessage=`В форме содержатся ошибки!`
      &successMessage=`Сообщение успешно отправлено`
]]

Вот код вызова снипетта, но почта не отправляется ниже приложен лог MODX

[2016-07-20 09:13:16] (ERROR @ /var/www/vhosts/12/144988/webspace/httpdocs/core/components/formit/model/formit/fihooks.class.php : 552) [FormIt] Произошла ошибка при попытке отправить почту. Ошибка соединения с SMTP-сервером https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

On my server, sending emails with MODx (version 2.2) fails. It would probably work with SMTP, but in principle it should work without SMTP as well, since scripts like the one below work.

Script:

<?php
$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
echo "Mail Sent.";
?>

Can you help me find the reason for this misbehaviour and/or solve this problem?

Edit

To answer the questions below:

I don’t try to send any fancy emails to site users. I am just trying very basic stuff like resetting login and passwords via email.

I tried quickemail for debugging. The output is:

System Settings (used if property is missing):
emailsender System Setting: xxx@xxx.xx
site_name System Setting: MODX Revolution
Properties (from parameters, property set, or snippet default properties:
Tpl chunk name:
subject:
to:
fromName:
replyTo:
emailSender:
allowHtml: 1
message:
Final Values (actually used when sending email):
subject: Default Subject
to: xxx@xxx.xx
fromName: xxx@xxx.xx
replyTo: xxx@xxx.xx
emailSender: xxx@xxx.xx
allowHtml: 1
Message Body: Default Message
Send Failed
Mailer error info: Could not instantiate mail function.
Server Debug Information:

I think I already do use MOD-Mail with the core installation. Isn’t that right?

My mailserver uses qmail. I just tried the script above without a $from value, and it worked. Buts still, MODx cannot send emails.

  1. Главная
  2. Блог
  3. Ошибки, их причины и решения
  4. [FormIt] Ошибка соединения с SMTP-сервером в MODX Revolution

[FormIt] Ошибка соединения с SMTP-сервером в MODX Revolution

Сегодня, после переноса одного из проектов с тестовой площадки на production, перестала работать отправка писем по SMTP через FormIt. Все, что удалось найти в логах это —

[FormIt] Произошла ошибка при попытке отправить почту. Ошибка соединения с SMTP-сервером.

Кроме этого в логах не было ровным счетом ничего. Первое, что пришло на ум — проверить настройки. Они оказались в порядке (не мудрено, ведь я просто перенес сайт с одного хостинга на другой). Следующим шагом стало «гугление» проблемы в интернете, но, к сожалению, ничего внятного по этому поводу найти не удалось ни на русском, ни на английском языке.

Как выяснилось, проблема тут не в FormIt, а в MODX-овском phpmailer. А решилась она заменой версии PHP на хостинге с 5.3 на 5.5. Искать «корень зла» не было времени, а вот решение может еще кому-нибудь поможет.

  • 2016-01-25 20:30:05

MODX. QuickEmail, быстрая диагностика почтовой службы

Отредактировано: 19 Апреля 2018

QuickEmail можно использовать для отправки писем из какого-либо сниппета, но его основное назначение — диагностика работоспособности функционала отправки почты.

Дополнение устанавливается как и большинство компонентов, через инсталлер MODX. Для использования, просто поместите вызов дополнения на странице сайта.

[[!QuickEmail]]

При просмотре страницы на которой размещен вызов, должна отработать функция отправки сообщения. Если никаких проблем нет, то на почту, указанную при установке cms (можно найти в системных настройках по коду emailsender), должно прийти письмо.

Если ни письма ни ошибки не видно, попробуйте вызвать дополнение так

[[!QuickEmail? &debug=`1`]]

Диагностика проблем электронной почты

Возможные ошибки

  • “Could not instantiate mail function” — на хостинге отключена функция mail();
  • “AUTH failed” — в настройках modx используется отправка с помощью smtp требующая авторизацию. Проверьте правильность доступов, либо используйте mail();
  •  

Отправка почты из сторонних сниппетов

Код ниже можно использовать в сторонних снипетах, но это не лучшее решение, т.к. дополнение обрабатывает кучу информации и лишь затем отправляет почту используя MODX mailer. Гораздо более правильным решением будет — сразу использовать MODX mailer.

$props = array(
    'debug' => '0',
    'hideOutput' => '0',
    'message' => 'Некое сообщение',
    'subject' => 'Какая-то тема',
    'to' => 'someone@somewhere.com',
    'fromName' => 'Кто-то Кто-тович',
    'emailSender' => 'someone@somewhere.com',
    'replyTo' => 'someone@somewhere.com',
    'html' => '1',
    'failureMessage' => '<br /><h3 style=&quot;color:red&quot;>Отправка провалена</h3>',
    'successMessage' => '<br /><h3 style =&quot;color:green&quot;>Почта успешно отправлена</h3>',
    'errorHeader' => '<br />Ошибка почты:',
    'smtpErrorHeader' => '<br />Отчет SMTP-сервера:',
);

$output =  $modx->runSnippet('QuickEmail',$props);
return $output;


Использование MODX Mailer для отправки электронной почты

$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY, 'Some message');
$modx->mail->set(modMail::MAIL_FROM, 'someone@somewhere.com');
$modx->mail->set(modMail::MAIL_FROM_NAME, 'Your Name');
$modx->mail->set(modMail::MAIL_SENDER, 'you@yourdomain.com');
$modx->mail->set(modMail::MAIL_SUBJECT, 'Some Subject');
$modx->mail->address('to', 'somone@somewhere.com', 'UserName');
$modx->mail->address('reply-to', 'you@yourdomain.com');
$modx->mail->setHTML(true);
$sent = $modx->mail->send();
if ($sent) {
    $output = 'Mail Sent';
} else {
    $output = 'Mail Not Sent';
}
return $output;

Описание от разработчика

Здравствуйте друзья!
Попросили подправить форму обратной связи, не отправляет письма.
Вызывается ошибка «Форма содержит ошибки» и красным подсвечивается форма с Почтой, типа адрес почты не правильный или отсутствует…

Форма выводится двумя дополнениями FormIt и AjaxForm
Вот стандартный код который гуляет в сети.

Создаем Чанк tpl.AjaxForm
с кодом

<form action="" method="post" class="ajax_form af_example form-horizontal">
  <div class="control-group">
    <label class="control-label" for="af_name">Имя*</label>
    <div class="controls">
      <input type="text" id="af_name" name="name" value="" placeholder="Введите имя">
      <span class="error_name"></span>
    </div>
  </div>
  <div class="control-group">
    <label class="control-label" for="af_email">E-mail*</label>
    <div class="controls">
      <input type="email" id="af_email" name="email" value="" placeholder="Введите email">
      <span class="error_email"></span>
    </div>
  </div>
  <div class="control-group">
    <label class="control-label" for="af_phone">Телефон</label>
    <div class="controls">
       <input type="text" id="af_phone" name="phone" value="" placeholder="Введите номер телефона">
      <span class="error_phone"></span>
    </div>
  </div>
  <div class="control-group">
    <label class="control-label" for="af_message">Сообщение*</label>
    <div class="controls">
      <textarea id="af_message" name="message" rows="5"></textarea>
      <span class="error_message"></span>
    </div>
  </div>
  <div class="control-group">
    <div class="controls">
      <button type="reset" class="btn btn-default">Очистить</button>
      <button type="submit" class="btn btn-primary">Отправить</button>
    </div>
  </div>
</form>

Вызов сниппета AjaxForm на странице контактов

[[!AjaxForm? 
  &form=`tpl.AjaxForm` 
  &snippet=`FormIt` 
  &hooks=`FormItSaveForm,email`
  &emailSubject=`Тестовое сообщение`
  &emailTo=`myemail@mail.ru`
  &emailFrom=`no-reply@mysite.com`
  &emailTpl=`tpl.email`
  &validate=`name:minLength=^2^,email:email:required,message:minLength=^10^`
  &validationErrorMessage=`В форме содержатся ошибки!`
  &successMessage=`Сообщение успешно отправлено`
]]

Чанк tpl.email с шаблоном самого письма

<h3>Сообщение</h3>
<p>От кого: [[+name]]</p>
<p>E-mail: [[+email]]</p>
<p>Телефон: [[+phone]]</p>
<p>Сообщение: [[+message]]</p>

И не работает, кучу подобный перепробовал, результат тот же.
Подскажите пожалуйста, как решить проблему?
Спасибо!

Возможно, вам также будет интересно:

  • Возникла ошибка при отправке на портал фсзн
  • Возникла ошибка при отправке на портал ввод дпу
  • Возникла ошибка при отправке кода днс
  • Возникла ошибка при отправке кода dns
  • Возникла ошибка при открытии вашего файла solidworks

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии