Я знаю, что можно отправить электронное письмо с подтверждением активации через 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 делать то, что я спрашиваю?