swift - 如何使用 FOSUserBundle 在我的邮件中包含激活链接?
问题描述
我知道可以通过 fosuserbundle 发送带有激活 lein 的确认电子邮件。只是,我希望我可以在需要时自己插入。
我有用户提出帐户创建请求,我必须手动接受(或拒绝)他们。如果我接受他们,他们会使用 SwiftMail 收到一封包含其凭据的电子邮件。但我也希望能够插入这个著名的激活链接,以便当他们单击它时,它将用户实体的“启用”变量传递给 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 是否可以按照我的要求进行操作?
解决方案
推荐阅读
- python - 在 pandas 数据框中使用 cut 对其进行分箱时,为什么分箱没有正确完成?
- sql - SQL - 联合第一个查询将始终是第一行
- swift - 我的 UICollectionView 没有使用 Swift 平滑滚动
- javascript - 如果用户“拔掉插头”并关闭计算机,是否会触发任何窗口事件?
- python - Python Try-Except:如何改变 Logging.info?
- python - 为什么 Python 将我的 dict 视为 str?
- powerbi - 运行总计未在折线图上汇总
- sql - 两个表中的值不匹配的行
- php - 在 PHP 中匹配通配符数组 - WordPress
- openmp - OpenMP 不为简单程序提供加速