Service Mailer commandé par un event doctrine
Bonjour,
Je souhaite installer un service qui envoie un mail quand on enregistre un champs dans une entité de la base de données
voici le code pour déclarer le service :
Code:
1 2 3 4 5 6 7 8
| App\EventListener\Mail:
arguments: ['@mailer']
tags:
-
# these are the basic options that define the entity listener
name: 'doctrine.orm.entity_listener'
event: 'postUpdate'
entity: 'App\Entity\Message' |
voici le service
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| // src/EventListener/MailerController.php
namespace App\EventListener;
use App\Entity\Message;
use Doctrine\Persistence\Event\LifecycleEventArgs;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
class Mail
{
private $mailer;
public function __construct(MailerInterface $mailer)
{
$this->mailer = $mailer;
}
public function postUpdate(Message $message, LifecycleEventArgs $event)
{
$email =(new Email())
->from('hello@example.com')
->to('vincenthure@mac.com')
->subject('Time for Symfony Mailer!')
->text('Sending emails is fun again!')
->html('<p>See Twig integration for better HTML integration!</p>');
$this->mailer->send($email);
}
} |
Le système ne fonctionne pas!
Pourtant si je déclare le même code dans un controler il envoie bien un mail.
Quelqu'un a-t-il une explication ?
Vincent