Уведомление администратора о регистрации пользователя
Добрый день, нужна помощь!
Как сделать чтобы администратору приходило письмо о новом зарегистрированном пользователе на сайте?
Используется компонент login.
Спасибо
Как сделать чтобы администратору приходило письмо о новом зарегистрированном пользователе на сайте?
Используется компонент login.
Спасибо
Комментарии: 10
Можно использовать Post Hooks, там внизу страницы как раз пример отправки письма. Либо написать плагин на событие OnUserActivate или OnUserSave.
posthook пробовал, сделал снипет «hookComEmail»
на странице регистрации добавил "&postHooks=`hookComEmail`"
регистрация проходит, но письмо не приходит
сможете помочь?
на странице регистрации добавил "&postHooks=`hookComEmail`"
регистрация проходит, но письмо не приходит
сможете помочь?
Было бы здорово, если бы вы поделились полным вызовом сниппета Login и кодом вашего хука, так будет понятнее всем )
Прошу прощения, давно уже Login не использовал) там в примере хука ошибка (лишняя строка MAIL_SENDER), вот рабочий вариант:
<?php
$message = 'Новый пользователь зарегистрирован: '.$hook->getValue('username')
. ' with email '.$hook->getValue('email').'.';
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'no_reply@domain.com');
$modx->mail->set(modMail::MAIL_FROM_NAME,'Название сайта');
$modx->mail->set(modMail::MAIL_SUBJECT,'Новый пользователь зарегистрировался');
$modx->mail->address('to','to@domain.com');
$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);
}
$modx->mail->reset();
return true;
Ну или использовать вариант который вы нашли, суть одна. =)
Страница регистрации:
[[!Register?
&submitVar=`registerbtn`
&activationResourceId=`94`
&submittedResourceId=`104`
&activation=`1`
&preHooks=`recaptchav2`
&postHooks=`hookComEmail`
&activationEmailSubject=`Подтверждение регистрации`
&activationEmailTpl=`myActivateEmailTpl`
&successMsg=`<p>Спасибо за регистрацию. На вашу электронную почту [[!+reg.email]] отправлено письмо, содержащее ссылку, необходимую для активацию аккаунта. Перейдите по этой ссылке, чтобы завершить процедуру регистрации.</p>`
&usergroups=`Users`
&validate=`nospam:blank,
username:required:minLength=^4^,
password:required:minLength=^6^,
password_confirm:password_confirm=^password^,
fullname:required,
email:required:email`
&placeholderPrefix=`reg.`
]]
<div class="panel panel-primary">
<div class="panel-heading"><i class="fa fa-id-badge"></i> Регистрация</div>
<div class="panel-body">
<p class="text-danger"></p>
<div class="register">
<div class="registerMessage">[[!+reg.error.message]]</div>
<form class="form" action="[[~[[*id]]]]" method="post">
<input type="hidden" name="nospam" value="[[!+reg.nospam]]" />
<div class="form-group">
<label class="col-sm-4 control-label" for="username">[[%register.username? &namespace=`login` &topic=`register`]]
</label>
<input type="text" name="username" id="username" value="[[!+reg.username]]" />
<span class="error">[[!+reg.error.username]]</span>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="fullname">[[%register.fullname]]
</label>
<input type="text" name="fullname" id="fullname" value="[[!+reg.fullname]]" />
<span class="error">[[!+reg.error.fullname]]</span>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="password">[[%register.password]]
</label>
<input type="password" name="password" id="password" value="[[!+reg.password]]" />
<span class="error">[[!+reg.error.password]]</span>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="password_confirm">[[%register.password_confirm]]
</label>
<input type="password" name="password_confirm" id="password_confirm" value="[[!+reg.password_confirm]]" />
<span class="error">[[!+reg.error.password_confirm]]</span>
</div>
<div class="form-group">
<label class="col-sm-4 control-label" for="email">[[%register.email]]
</label>
<input type="text" name="email" id="email" value="[[!+reg.email]]" />
<span class="error">[[!+reg.error.email]]</span>
</div>
<br class="clear" />
<div class="form-item">
[[!recaptchav2_render]]
[[!+reg.error.recaptchav2_error:notempty=`Пожалуйста, отметьте флажок на reCaptcha`]]
</div>
<div class="form-buttons">
<input type="submit" class="btn btn-primary pull-left" name="registerbtn" value="регистрация" />
</div>
</form>
</div>
<div class="clearfix"></div>
<hr style="margin-top:10x;margin-bottom:5px;">
</div>
</div>
Снипет hookComEmail:<?php
$message = 'Hi, a new User signed up: '.$hook->getValue('username')
. ' with email '.$hook->getValue('email').'.';
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
$modx->mail->set(modMail::MAIL_FROM,'no-reply@domen1.ru');
$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','komu@domen.ru');
$modx->mail->setHTML(true);
$modx->mail->reset();
/* tell our snippet we're good and can continue */
return true;
Вау-я програмистттттт
отвечу сам, нашел в инете
отвечу сам, нашел в инете
<?php
/*Активируем почтовый сервис MODX*/
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
$modx->mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name'));
/*Адрес получателя нашего письма*/
$modx->mail->address('to', 'komu@demen.ru');
/*Заголовок сообщения*/
$modx->mail->set(modMail::MAIL_SUBJECT, 'На сайте зарегистрирован новый пользователь');
/*Подставляем чанк с телом письма (предварительно его нужно создать)*/
/*$modx->mail->set(modMail::MAIL_BODY, $modx->getChunk('myEmailTemplate'));*/
$message = '<strong>Здрасти</strong>,
<p>У нас новый пользователь с логином : '.$hook->getValue('username')
. ' </p>и почтой email: '.$hook->getValue('email').'.';
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY,$message);
/*Отправляем*/
$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);
}
$modx->mail->reset();
Супер! Послать забыли?)
$modx->mail->send()
Ну и дважды запрос сервиса $modx->getService('mail', 'mail.modPHPMailer');
в новом коде.
да вроди как нет, все работает
if (!$modx->mail->send()) {
вот же.
Все вы верно говорите, не туда смотрел. Открещиваюсь.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.