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
modx.pro
833
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
                  Уже и не вспомню. Сам по себе скрипт это свич для ответов на ажакс запросы. Единственная глобальная функция это та самая для отправки почты. Уже и не известно после чего он перестал работать.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      9