所以我为我的重置密码系统设计了一个电子邮件模板。在电子邮件模板中,有图像(徽标)。
我将这些图像放在一个名为的文件夹Email_Images
中,该文件夹位于该Public
文件夹中!
首先,我尝试使用Asset()
twig 函数链接图像,如下所示:
<img alt="logo 1" src="{{asset('Email_Images/1.png')}}" />
<img alt="logo 2" src="{{asset('Email_Images/2.jpg')}}" />
但它们都不起作用。所以我尝试在控制器中获取图像并将其发送到模板,如下所示:
$email = (new TemplatedEmail())
->from(new Address('myEmail@gmail.com', 'My Subject'))
->to($user->getEmail())
->subject('Your password reset request');
$img= $email ->embed(fopen('Email_Images/1.jpg', 'r'), 'img');
$email->htmlTemplate('reset_password/email.html.twig')
->context([
'resetToken' => $resetToken,
'img' => $img,
'tokenLifetime' => $this->resetPasswordHelper->getTokenLifetime(),
]);
在我做的模板中
<img alt="logo 1" src="{{ img }}" />
我得到这个错误:
在渲染模板期间引发了异常(“可捕获的致命错误:Symfony\Bridge\Twig\Mime\TemplatedEmail 类的对象无法转换为字符串”)。
在电子邮件中添加/嵌入图像的正确方法是什么?