我知道可以通过fosuserbundle发送带有激活密码的确认电子邮件。只不过,我希望自己可以在需要时自己插入。
我有发出帐户创建请求的用户,我必须手动接受(或拒绝)它们。如果我接受他们,他们会使用SwiftMail收到一封包含其凭据的电子邮件。但是我也希望能够插入这个著名的激活链接,以便当他们单击它时,它将User实体的“ Enabled”变量传递为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);
}
以及 activation.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/>
因此,我要在Activation.html.twig中插入一些东西来生成用户特定的激活链接(使用函数?)。通过向用户对象传递参数,我想知道FOSUserBundle是否可以执行我所要求的操作?