Как повторно отправить письмо для подтверждения регистрации? [Решено]

Использую пакет «Login».
Как можно повторно инициировать отправку письма для подтверждения регистрации?
В случаях если пользователь удалил письмо или просто отправить напоминание с соответствующей ссылкой.

UPD [решение]:

$user_id = 321;
$activationUrlTime = 10800; //срок жизни 3 часа
$activationResourceId = 8;

function base64url_encode($str) {
    return rtrim(strtr(base64_encode($str), '+/', '-_'), '=');
}

if ($user = $modx->getObject('modUser', $user_id)) {
  $username = $user->get('username');
  $pword = $user->generatePassword();

  $modx->getService('registry', 'registry.modRegistry');
  $modx->registry->addRegister('login','registry.modFileRegister');
  $modx->registry->login->connect();
  $modx->registry->login->subscribe('/useractivation/');
  $modx->registry->login->send('/useractivation/', array($username => $pword), array('ttl' => ($activationUrlTime)));

  $user->set('cachepwd', md5($pword));
  $cachepwd = $user->get('cachepwd');
  $user->save();

  $confirmParams['lp'] = base64url_encode($pword);
  $confirmParams['lu'] = base64url_encode($username);
  return $modx->makeUrl($activationResourceId, '', $confirmParams, 'full');
}
Сергей
27 октября 2022, 22:49
modx.pro
183
+1

Комментарии: 10

Артур Шевченко
28 октября 2022, 11:57
0
Тут можешь посмотреть как создать ссылку. Как отправлять письма в Modx можно нагуглить. А дальше нужно отталкиваться от конкретной задачи. Если напоминать, то нужно создавать задачу в планировщике сервера, выбирать всех не активных пользователей и рассылать ссылки на активацию.
    Сергей
    28 октября 2022, 12:27
    0
    Основная проблема в формировании ссылки. Остальное не вызывает вопросов :)
    Нет понимания можно ли как-то повторно сгенерировать ссылку.
      Артур Шевченко
      28 октября 2022, 14:59
      +1
      сорри, я не выспался, забыл ссылку вставить))) Тут пример.
        Сергей
        29 октября 2022, 15:36
        0
        Спасибо! Обновил пост — добавил решение.
        Сделал франкенштейна из разных кусков :)
Лёша
28 октября 2022, 15:16
0
В случаях если пользователь удалил письмо или просто отправить напоминание с соответствующей ссылкой.
А как узнать, что он письмо удалил?) Или типа зарегистрировался и долгое время не подтверждает?
    Сергей
    28 октября 2022, 15:38
    0
    Да, имеется ввиду что в течении какого-то периода пользователь не подтвердил регистрацию и в этом случае нужно отправить повторно.
      Лёша
      28 октября 2022, 17:47
      0
      Костыль конечно, но можно ссылку в кэш писать. В свою папку, чтоб не чистился. Или в extended пользователя.
      UPD. Она устареет же, так что не вариант
        Лёша
        28 октября 2022, 17:48
        +1
        Можно сделать сниппет, который будет сам генерировать ссылку
          Сергей
          29 октября 2022, 15:36
          0
          Вроде сделал)
          Обновил информацию в посте
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    10