php 由于缺少html,无法发送模板化电子邮件

tf7tbtn2  于 2023-01-01  发布在  PHP
关注(0)|答案(1)|浏览(152)

我的电子邮件如下所示:

$email = (new TemplatedEmail())
    ->from(new Address('example@example.com', 'Support'))
    ->to('example@example.com')
    ->subject('Your password reset request')
    ->htmlTemplate('reset_password/email.html.twig')
    ->context([
        'resetToken' => '12312321',
    ]);

它会抛出如下错误:
消息必须包含文本、HTML部分或附件
我发现我不得不补充一句:

$loader = new FilesystemLoader($this->kernel->getProjectDir() . '/templates');
$twigEnv = new Environment($loader);
$twigBodyRenderer = new BodyRenderer($twigEnv);
$twigBodyRenderer->render($email);

但我很确定这不可能是正确的方法。我真的必须在每个电子邮件发送操作中写入这4行吗?另外,当我安装symfonycasts/reset-password-bundle时,它没有FilesystemLoader等。因此,电子邮件工作显然不需要它。我在这里遗漏了一些东西?

lvjbypge

lvjbypge1#

为了不需要更多代码就能找到模板,您的twig配置应该包含如下内容

twig:
     default_path: '%kernel.project_dir%/templates'

相关问题