как отправить токен в symfony4? - PullRequest
0 голосов
/ 13 ноября 2018

эй, мне нужно отправить токен, используя swift mailer, и сообщение содержит ссылку для перенаправления пользователя на страницу, где он может установить свой новый пароль.моя проблема в том, что сообщение, которое я получаю, это html-скрипт страницы, а не ссылка, которая перенаправляет на него, надеюсь, вы поможете.

        /**
         * @Route("/checking_email", name="checking_email")
         */
        public function CheckingEmail(Request $request,\Swift_Mailer $mailer, TokenGeneratorInterface $tokenGenerator)
        {
            $user = new User();
            $email = $request->request->get("inputEmail", "valeur par défaut si le champ n'existe pas");

            $user = $this->getDoctrine()
            ->getRepository(User::class)
            ->findOneBy(['email' => $email]);
            ////////////////////////////////////
            if(!$user){
                $var=true;
                $this->addFlash("notice", "This is an error message");  

            }else{

             $var=false;
        $user->setToken($tokenGenerator->generateToken());
        //enregistrement de la date de création du token
        $user->setPasswordRequestedAt(new \Datetime());
        $em = $this->getDoctrine()->getManager();
        $em->flush();                 

        $message = (new \Swift_Message('try to check this link to renew ur password '))
        ->setFrom($user->getEmail())
        ->setTo('my_email@gmail.com')
        ->setBody($this->render('security/reset_pass.html.twig',array('user' => $user->getToken())),'text/plain');

        $mailer->send($message);
        //return $this->redirectToRoute("security/redifine.html.twig");
                }        
                return $this->render('security/reset_pass.html.twig',[
                    'form'=> $email,
                    'var'=>$var,
                    ]);
            }

сообщение, которое я получаю в gmail

1 Ответ

0 голосов
/ 15 ноября 2018

Вы должны указать, что ваша почта в формате HTML:

https://symfony.com/doc/current/email.html#sending-emails

$message = new \Swift_Message('try to check this link to renew ur password ')
        ->setFrom($user->getEmail())
        ->setTo('my_email@gmail.com')
        ->setBody(
          $this->render('security/reset_pass.html.twig', [
            'user' => $user->getToken()
          ]), 
          'text/html'
        );
...