modPHPMailer ложит сервер на ломатки 500

столкнулся с проблемой отправки писем.

из терминала, ОК:
echo -e "To: tut@domena.net\\nSubject: Test\\nTest\\n" | sendmail -bm -t -v
отрывок функции снипета, ОК:
$headers  = "Content-type: text/html; charset=utf-8 \r\n";
  if ( $data[email] ) {
    $headers .= "From: ".$data[name]." <".$data[email].">\r\n"; 
    $headers .= "Bcc: ".$data[email]."\r\n"; 
  } else {
    $headers .= "From: ".$data[phone].">\r\n";
  }
  
  if ( mail($data['to'], $data['subject'], $data['tpl'], $headers) ) {
    $fn_answer = 'письмо отправленно успешно';
  } else {
    $fn_answer = 'ошибка отправки письма';
  }
  return $fn_answer;

НО стоит запустить modPHPMailer в снипете, серверу больше нечего отдать кроме 500. к томуже если запустить modPHPMailer из Console все оправляется и работает.

в логах modx пусто, в логах сервера:
[error] 20478#20478: *7 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Call to a member function getService() on null in

пожскажите пожалуйста у кого какие мысли и идеи, как это решить.

modx_2.7.0

-= РЕШЕНИЕ ( от Андрей Шевченко ) =-
Инициализировать модекс в снипете
Юрий Фомин
11 января 2019, 14:16
127
0

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

Василий Наумкин
11 января 2019, 14:28
0
Ошибку 500 всегда нужно смотреть в логах сервера
    Юрий Фомин
    11 января 2019, 14:30
    0
    [error] 20478#20478: *7 FastCGI sent in stderr: «PHP message: PHP Fatal error: Uncaught Error: Call to a member function getService() on null in
    далее указывался снипет и строка где вызывался modPHPMailer
      Василий Наумкин
      11 января 2019, 14:35
      0
      Похоже на то.

      Дальше нужно смотреть «снипет и строка где вызывался modPHPMailer» и проверять, почему он вызывает почтовик из пустоты.
        Юрий Фомин
        11 января 2019, 14:39
        0
        спасибо Василий, что поддерживаете. у Вас наверное и так времени в обрез.
        в снипете была оставлена, ради експеримента, только эта строка:
        $modx->getService('mail', 'mail.modPHPMailer');
        серверу хватило )), вспомнил что даже простым php из снипета почта не отправлялась, но и ошибок не было.
          Василий Наумкин
          11 января 2019, 14:54
          0
          Теперь осталось понять, почему $modx в сниппете является null.
          Андрей Шевченко
          11 января 2019, 15:59
          0
          Можете попробовать вот такую конструкцию, я ее обычно использую в кастомном файле отправки писем для инициализации $modx
          require_once $_SERVER["DOCUMENT_ROOT"].'/config.core.php';
          require_once MODX_CORE_PATH.'model/modx/modx.class.php';
          $modx = new modX();
          $modx->initialize('web');
            Юрий Фомин
            11 января 2019, 20:15
            0
            Огромное спасибо, действительно помогло.
            Интересно, а зачем нужно было инициализировать модекс если по идее он это делает автоматом (возможно ошибаюсь) и почему сейчас, так как это скрипт работал и ранее, без доп. инициализации… странности да и только ))
            Большое спасибо за участие и помощь!
              Андрей Шевченко
              12 января 2019, 20:54
              0
              По-идее, должен инициализировать автоматом, а после чего у вас сломался скрипт?
                Юрий Фомин
                13 января 2019, 21:49
                0
                Уже и не вспомню. Сам по себе скрипт это свич для ответов на ажакс запросы. Единственная глобальная функция это та самая для отправки почты. Уже и не известно после чего он перестал работать.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.