【问题标题】:FOSUser Bundle manual trigger confirmation emailFOSUser Bundle 手动触发确认邮件
【发布时间】:2013-08-02 10:06:04
【问题描述】:

我使用 FOSUser Bundle 作为我自己的 User 类的基础类。通过网络服务可以创建新用户。

据我所知,它仅在用户通过注册表单注册时触发。

有没有办法手动触发来自控制器的确认电子邮件?

【问题讨论】:

  • 你有没有尝试过或研究过docs/github?
  • 是的,但似乎没有触发器。

标签: email symfony registration fosuserbundle confirmation


【解决方案1】:

似乎没有手动触发发送确认电子邮件的解决方案。它仅与注册表结合触发。我最终做的是伪造一个表单并发送它以触发负责发送电子邮件的事件侦听器。

//use FOS\UserBundle\FOSUserEvents;
//use FOS\UserBundle\Event\FormEvent;

$formFactory = $this->get('fos_user.registration.form.factory');
$form = $formFactory->createForm();
$form->setData($user); // created user object
$event = new FormEvent($form, $request); // request of the Controller
$dispatcher = $this->get('event_dispatcher');
$dispatcher->dispatch(FOSUserEvents::REGISTRATION_SUCCESS, $event);

不是一个真正干净的解决方案,但我能想出的唯一一个,因为 FOSUserBundle 似乎没有为它提供任何类型的 API。

【讨论】:

  • 我正在尝试对 FosUser 1.2.0 做类似的事情。知道怎么做吗?
【解决方案2】:

这对我有用

$mailer = $this->container->get('fos_user.mailer');
// Create token
$token = sha1(uniqid(mt_rand(), true)); // Or whatever you prefer to generate a token
$user->setConfirmationToken($token);
$mailer->sendConfirmationEmailMessage($user);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    相关资源
    最近更新 更多