Отправка на почту пароля, без активации
Добрый день!
Делаю регистрацию на сайте через Login, активацию аккаунта через email отключил (но при регистрации требую почту), поставил автогенерацию пароля.
В документации смотрю, что сгенерированный пароль на почту пользователя можно отправить, только если есть подтверждение email, &activation=`1`.
Подскажите, пожалуйста, как можно отправить сгенерированный пароль на почту, без обязательной активации аккаунта?
Делаю регистрацию на сайте через Login, активацию аккаунта через email отключил (но при регистрации требую почту), поставил автогенерацию пароля.
В документации смотрю, что сгенерированный пароль на почту пользователя можно отправить, только если есть подтверждение email, &activation=`1`.
Подскажите, пожалуйста, как можно отправить сгенерированный пароль на почту, без обязательной активации аккаунта?
Комментарии: 12
Варианта 2, наверное: либо править код снипетов и модели Login, либо писать свою обертку для процессора добавления юзера, и то и другое требует расширенных знаний и времени.
Еще вариант взять Office (https://modstore.pro/packages/users/office) со скидкой, пока тепленький, предварительно уточнив наличие всего нужного функционала.
Еще вариант взять Office (https://modstore.pro/packages/users/office) со скидкой, пока тепленький, предварительно уточнив наличие всего нужного функционала.
У Office, если юзер указал пароль при регистрации, то он приходит на почту вместе со ссылкой на активацию.
Переходишь по ссылке и ты уже авторизован. Пользоваться паролем можно со следующей авторизации.
Или пароль не указываешь, то тебе присваивается случайный и так же отправляется на почту.
Переходишь по ссылке и ты уже авторизован. Пользоваться паролем можно со следующей авторизации.
Или пароль не указываешь, то тебе присваивается случайный и так же отправляется на почту.
Вась, версия последняя, ничего не правил, пароль введенный в ручную не приходит
joxi.ru/8An5wPdTjPYY02
А как обойти подтверждение пароля? т.е. зарегался сразу активный и паролем можно пользоваться
В функции _createUser() правил(другой сайт)
joxi.ru/8An5wPdTjPYY02
А как обойти подтверждение пароля? т.е. зарегался сразу активный и паролем можно пользоваться
В функции _createUser() правил(другой сайт)
//return $this->_resetPassword($data['username'], $data['password'], $this->config['tplRegister']);
return $this->success('Вы успешно зарегистрированы в проекте!
Войдите в свой личный кабинет, при помощи указанных Вами логина и пароля.');
Все регается, но не дает логиниться
Этой дыркой пользовались спамеры, так что теперь указанный вручную пароль больше не приходит — юзер же должен сам его знать, раз указал.
modx.pro/components/13850/
modx.pro/components/13850/
Понял.
согласен, что он сам знает. я на другом сайте давным давно тоже убирал из письма пароль, т.к. не понимал нафиг, сам знать должен, а если не помнит восстановление есть.
На второй вопрос я так понимаю не ответишь?) т.к. у вас новая политика в отношении платных компонентов
согласен, что он сам знает. я на другом сайте давным давно тоже убирал из письма пароль, т.к. не понимал нафиг, сам знать должен, а если не помнит восстановление есть.
На второй вопрос я так понимаю не ответишь?) т.к. у вас новая политика в отношении платных компонентов
Все регается, но не дает логинитьсяЗначит, нужно еще что-то поправить.
Я, честно говоря, не готов сейчас эту задачу решать и писать готовый ответ.
Значит, нужно еще что-то поправить.Логично:)
Моя догадка(как выход), что нужно после создания юзера редиректить с той же ссылкой(т.е. hash login email), что в письме есть и сразу будет логиниться.
Чтож, пошел я в редактор кода)
Ну если ты не требуешь, подтверждения пароля значит при регистрации сразу же ставь параметр активирован 1 и все.
И письма шли типа ваш емейл был указан при регистрации там то там то логин пароль такойто
И письма шли типа ваш емейл был указан при регистрации там то там то логин пароль такойто
Вопрос в этом и заключался, как это сделать, отослать пароль на почту.
В логине есть пост и пре хуки при создании юзера ставиш ему подтвержденный емейл, а письмо отправляешь пост хуком.
rtfm.modx.com/extras/revo/login/login.tutorials/login.using-pre-and-post-hooks вот мануал там прямо пример как слать емейл.
rtfm.modx.com/extras/revo/login/login.tutorials/login.using-pre-and-post-hooks вот мануал там прямо пример как слать емейл.
Лучше такое сделать плагином на событие 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();
}
Спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.