Как включить ссылку активации в моем письме с FOSUserBundle? - PullRequest
1 голос
/ 09 апреля 2019

Я знаю, что можно отправить электронное письмо с подтверждением активации через fosuserbundle. Только, я бы хотел вставить его сам, когда захочу.

У меня есть пользователи, которые делают запросы на создание аккаунта, и я должен принять их (или отказаться) вручную. Если я принимаю их, они получают электронное письмо со своими учетными данными, используя SwiftMail. Но я также хотел бы иметь возможность вставить эту известную ссылку активации, чтобы при щелчке по ней она передавала переменную «Enabled» объекта User в значение true.

В настоящее время я могу:

Восстановить пользователя, которого я хочу обработать, а также его информацию. Создайте электронное письмо и отправьте его ему через службу SwiftMail, отправив ему его учетные данные.

Все, что мне нужно сделать, это добавить функцию или что-то, что позволило бы мне в этом письме создать ссылку активации, специфичную для пользователя.

Мой код:

В моем Controller.php:

$prenom  = $user->getPrenom();
$nom     = $user->getNom();
$email   = $user->getEmail();

$this->sendMail($prenom,$nom);

Вернуться к этой функции:

public function sendMail($prenom,$nom,$email)
    {
        $transport = \Swift_SmtpTransport::newInstance();

                // Create the Mailer using your created Transport
                $mailer = new \Swift_Mailer($transport);

                $message = \Swift_Message::newInstance()
                                ->setSubject("subject of the mail")
                                ->setFrom(array('*******' => '*****'))
                                ->setTo($email)
                                ->setCharset('utf-8')
                                ->setContentType('text/html')
                                ->setBody($this->renderView("@Pages/swiftmail/activation.html.twig",array(
                                    'prenom'=>$prenom,
                                    'nom'=>$nom,
                                )));

        $mailer->send($message);
    }

И тело моего письма в активации.html.twig :

<p>Bonjour {{prenom}} {{nom}},</p>

<p>Votre compte a bien été validé.</p>

<p><i>Votre identifiant de connexion est : <b>{{login}}</b></i><br/>
<i>Votre mot de passe est : <b>{{mdp}}</b></i></p>

<p>Ce compte sera automatiquement désactivé après 400 jours ou après le téléchargement des paquets d'installation.</p>
<p>Cordialement,</p>

<span style="font-size:9px"><em>Ce mail a été généré automatiquement, merci de ne pas y répondre.</em></span><br/><br/>

Так что я хочу вставить что-то в activ.html.twig, чтобы сгенерировать пользовательскую ссылку активации (используя функцию?). Передавая параметр пользовательскому объекту, мне интересно, позволяет ли FOSUserBundle делать то, что я спрашиваю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...