Как запустить функцию электронной почты? - PullRequest
0 голосов
/ 03 октября 2019
public function email($name, \Swift_Mailer $mailer)
{
    $message = (new \Swift_Message('Hello Email'))
        ->setFrom('send@example.com')
        ->setTo('my.email@example.com')
        ->setBody(
            $this->renderView(
            // templates/emails/registration.html.twig
                ':emails:task.twig',
                ['name' => $name]
            ),
            'text/html'
        )
    ;

    $mailer->send($message);

    return $this->render(':emails:task.twig');
}

Я только что скопировал этот код из https://symfony.com/doc/current/email.html и изменил несколько вещей.

Я хотел бы запустить эту функцию, но я не понимаю, что является вторымпараметр? Я использую эту функцию в своем классе обслуживания.

1 Ответ

1 голос
/ 03 октября 2019
// class or controller registered in DI container
class InvoiceMailer
{
    private $mailer;

    public function __construct(\Swift_Mailer $mailer)
    {
        $this->mailer = $mailer;
    }

    private function email($name, \Swift_Mailer $mailer)
    {
        $message = (new \Swift_Message('Hello Email'))
            ->setFrom('send@example.com')
            ->setTo('my.email@example.com')
            ->setBody(
                $this->renderView(
                // templates/emails/registration.html.twig
                    ':emails:task.twig',
                    ['name' => $name]
                ),
                'text/html'
            );

         $mailer->send($message);
    }

    public function SendEmail($name)
    {
        $this->email($name, $this->mailer);
    }
}

DI используется в Symfony

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...