Глеб

Глеб

С нами с 19 сентября 2014; Место в рейтинге пользователей: #236
Пётр Молчанов
25 мая 2015, 10:55
5
+2
Лучше такое сделать плагином на событие OnUserRegister. Что-то типа такого:
if ($modx->event->name == 'OnUserSave' && $mode=='new') {
    // генерим пароль
    $pass = $modx->user->generatePassword();
    $user->set('password',$pass);
    $user->set('active','1');
    $user->save();
    // получаем мыло
    $profile = $user->getOne('Profile');
    $email = $profile->get('email');
    // отправляем письмо
		$messageFields = [массив каких-то данных, например, логин и пароль];
                $message = $modx->getChunk('UserRegEmailTpl', $messageFields);
                $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,$modx->getOption('site_name'));
                $modx->mail->set(modMail::MAIL_SENDER,$modx->getOption('site_name'));
                $modx->mail->set(modMail::MAIL_SUBJECT,'Благодарим за регистрацию');
                $modx->mail->address('to',$email);
                $modx->mail->address('reply-to',$modx->getOption('emailsender'));
                $modx->mail->setHTML(true);
                
                if (!$modx->mail->send()) {
                  $modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
                  return false;
                }
                $modx->mail->reset();
}