но что то не отправляет письма что не так
1. Проверьте просто отправку писем через mail() — можете это сделать прям в консоли (вполне вероятно, он у вас уже на сайте установлена). Дело в том, что у вас может просто отправка почты таким образом не работать (не стоит sendmail или типа того).
2. Замените строчку mail($to, $subject, $message, $headers); на
if(!mail($to, $subject, $message, $headers)){ $modx->log(xPDO::LOG_LEVEL_ERROR, "Не удалось отправить письмо"); }
Это вам позволит убедиться в том, что логической ошибки нет (то есть письмо действительно должно было отправляться), но функция mail() не была успешно выполнена.