Comment envoyer un e-mail passe oublié par programme?

9

J'ai implémenté Decoupled Drupal dans l'un de mes projets, l'une des fonctionnalités que j'ai besoin de mettre en œuvre est une forget passwordfonctionnalité. J'ai donc créé un itinéraire personnalisé pour écouter la réinitialisation du mot de passe demandé.

Je sais que je peux créer une URL de réinitialisation de mot de passe avec user_pass_reset_url(); Je peux générer ce lien et définir par e-mail l'e-mail pour cet utilisateur, mais je recherche un service ou une fonctionnalité de base Drupal pour réaliser ce travail.

Comment envoyer par programme un e-mail de réinitialisation de mot de passe?

Yuseferi
la source
La façon d'envoyer un e-mail de réinitialisation de mot de passe par programme consiste à créer un module pour modifier l'hôte et le chemin de l'URL afin qu'il soit lié à votre application à la place, puis fournir un point de terminaison pour gérer l'ingestion des parties de l'URL de réinitialisation par l'utilisateur. Il n'y a aucune fonctionnalité de base pour cela. Dans Drupal 7, j'ai trouvé plus facile de rediriger l'utilisateur du site principal vers l'application frontale après avoir visité la page / user
mradcliffe

Réponses:

11

Avec une certaine ingénierie inverse sur le module utilisateur principal, la solution est la suivante:

    $name = \Drupal::request()->get("name");
    $langcode =  \Drupal::languageManager()->getCurrentLanguage()->getId();
    // Try to load by email.
    $users = \Drupal::entityTypeManager()->getStorage('user')->loadByProperties(array('mail' => $name));
    if (empty($users)) {
        // No success, try to load by name.
        $users = \Drupal::entityTypeManager()->getStorage('user')->loadByProperties(array('name' => $name));
    }
    $account = reset($users);
    // Mail one time login URL and instructions using current language.
    $mail = _user_mail_notify('password_reset', $account, $langcode);
Yuseferi
la source
Merci @Yusef par exemple. J'ai créé ce module pour le projet personnel: github.com/ivan-berezhnov/drupal-8-recipes/tree/master/…
Ivan Berezhnov