Не работает postHooks в Register Новый

Дополнение: Login Register

Всем доброго дня!
Проблема такая
Сделал регистрацию без активации и автогенерацией пароля--это всё работает.
Так-же надо сделать уведомление этому юзеру с паролем.
Попытался реализовать как на https://docs.modx.com/extras/revo/login/login.tutorials/login.using-pre-and-post-hooks#Login.UsingPreandPostHooks-Examples

И так и эдак перепробовал---не работает. В логе
[2017-05-30 15:42:10] (ERROR @ /home/...../www/core/cache/includes/elements/modsnippet/63.include.cache.php: 13) An error occurred while trying to send the email:
Может кто сталкивался с такой задачей?
Подскажите пожалуйста!
И может есть другой способ реализовать уведомление на email
Спасибо!
Вот код

Вызов Register
[[!Register?
	&generatePassword=`1`
	&validatePassword=`0`
	&activation=`0`
	&postHooks=`hookComEmail`
    &successMsg=`<div class="alert alert-success">Спасибо за регистрацию. На вашу электронную почту <b>[[!+reg.email]]</b> отправлено письмо </div>`
	&submitVar=`register-btn`&placeholderPrefix=`reg.`
  	&usernameField=`email`
    &usergroupsField=`reg_type`
    &customValidators=`valueIn`
    &validate=`username:blank,
        reg_type:valueIn=^explorers^,
        fullname:required:minLength=^6^,
		email:required:email`
    ]]
[[!+error.message:default=`[[!$Register.Form.Exp.Home]]`]]
Сама форма
<form action="[[~[[*id]]]]" method="POST" class="form-horizontal" id="register_form">
<input type="hidden" name="reg_type" id="reg_type1" value="explorers" [[!+reg.reg_type:is=`explorers`:then=`checked`:else=``:default=`checked`]]>
<div id="RegForm" class="">


<label class="loginUsernameLabel" for="name">Представьтесь:

            <input class="loginUsername" type="text" name="fullname" value="[[!+reg.fullname]]">
            [[!+reg.error.fullname:notempty=`<div class="alert alert-danger">[[!+reg.error.fullname]]</div>`]]

</label>


<label class="loginPasswordLabel" for="email">Электронная почта:
       
            <input class="loginPassword" type="text" name="email" value="[[!+reg.email]]">
            [[!+reg.error.email:notempty=`<div class="alert alert-danger">[[!+reg.error.email]]</div>`]]
</label>


<span class="loginLoginButton">
            <input type="submit" name="register-btn" class="register-btn" value="Зарегистрироваться">
</span>

        <div class="col-xs-12">
            <p class="pull-right">Все поля обязательны для заполнения</p>
        </div>

	</div>
</form>
И postHook `hookComEmail`

<?php
$message = 'Hi, a new User signed up: '.$hook->getValue('fullname')
 . ' with email '.$hook->getValue('email').'.';
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'emailsender');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Jerrys Site');
$modx->mail->set(modMail::MAIL_SENDER,'Jerrys Site');
$modx->mail->set(modMail::MAIL_SUBJECT,'New User Signed Up');
$modx->mail->address('to','xndr.xndr@yandex.ru');
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
    $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$err);
}
$modx->mail->reset();
/* tell our snippet we're good and can continue */
return true;
30 мая 2017, 16:03    Alexander   
0    156 0

Комментарии (3)

  1. Алексей Ерохин 30 мая 2017, 17:22 # 0
    $modx->mail->set(modMail::MAIL_FROM,'emailsender');
    Это неверно
    $modx->mail->set(modMail::MAIL_FROM,$modx->getOption('emailsender'));
    docs.modx.com/revolution/2.x/developing-in-modx/advanced-development/modx-services/modmail
    1. Владимир Новопашин 30 мая 2017, 17:24 # 0
      1) Вывод ошибки должен быть таким образом:
      $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
      Т.к. выводить вам нужно не ошибку плагина, а ошибку именно сервиса отправки почты

      2) После этого можно прочитать что MAIL_SENDER указан неверно — должен быть адрес почты.
      $modx->mail->set(modMail::MAIL_SENDER, $modx->config['emailsender']);
      3) Чтобы получить адрес отправителя из системных настроек нужно писать:
      $modx->config['emailsender']
      а никак не просто 'emailsender'
      1. Alexander 30 мая 2017, 17:40 # 0
        Спасибо! Всё заработало!
        <?php
        $message = 'Hi, a new User signed up: '.$hook->getValue('fullname')
         . ' with email '.$hook->getValue('email').'.';
        $modx->getService('mail', 'mail.modPHPMailer');
        $modx->mail->set(modMail::MAIL_BODY,$message);
        $modx->mail->set(modMail::MAIL_FROM,$modx->getOption('emailsender'));
        $modx->mail->set(modMail::MAIL_FROM_NAME,'Jerrys Site');
        $modx->mail->set(modMail::MAIL_SENDER,$modx->config['emailsender']);
        $modx->mail->set(modMail::MAIL_SUBJECT,'New User Signed Up');
        $modx->mail->address('to','xndr.xndr@yandex.ru');
        $modx->mail->setHTML(true);
        if (!$modx->mail->send()) {
            $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$err);
        }
        $modx->mail->reset();
        /* tell our snippet we're good and can continue */
        return true;
        
      Вы должны авторизоваться, чтобы оставлять комментарии.