Search code examples
symfonylistviewsonata-adminsymfony-3.4

Send a custom email from sonata admin using variables


I have a list view in sonata admin. I want to add a column that will allow me to click on a link to send an email. The link action will know variables from that row in the table so that it can fill in the email. I was able to add the column and can visualize a twig template. I've added the following function to the Admin Class:

 public function sendEmail( \Swift_Mailer $mailer)
    {
        $message = (new \Swift_Message('some email'))
            ->setFrom('contact@example.com')
            ->setTo('contact@example.com')
            ->setBody(
                $this->renderView(
                    'emails/response.html.twig',
                    array('manufacturer' => $manuvalue, 'modelnum' => $modelnumvalue, 'email' => $email)
                ),
                'text/html');

        $mailer->send($message);

    }

I'm stuck on how to connect these pieces together so that when I click on the link the email is sent and includes the params from the row. I have email working on form submit in other areas of the site, but need help figuring out the way to do this manually.


Solution

  • I ended up doing a custom route and protected it with security settings that @dirk mentioned.