我设计了一个重置密码系统的电子邮件模板。
在邮件模板中,有图片(标志)。
我将这些图像放在一个名为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 的对象转换为字符串”)。
如何正确地在邮件中添加/嵌入图像?
C:\dev\myawesomeproject\public\Email_Images\1.png
这样的 URL 吗?那么它将是一个本地路径?如果您将这些电子邮件发送给没有在完全相同路径中拥有该图像的用户,则此解决方案将无法正常工作。或者我理解错了吗? - Fabian Schmickcid:
引用图像Symfony文档。 - Dhia Djobbi