gpt4 book ai didi

php - 如何在 symfony 邮件中嵌入图像?

转载 作者:行者123 更新时间:2023-12-04 01:17:39 25 4
gpt4 key购买 nike

所以我为我的重设密码系统设计了一个电子邮件模板。在电子邮件模板中,有图像( Logo )。

我将这些图像放在名为 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')}}" />

但它们都不起作用。所以我尝试在 Controller 中获取图像并将其发送到模板,如下所示:

 $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 }}" />

我得到这个错误:

An exception has been thrown during the rendering of a template("Catchable Fatal Error: Object of classSymfony\Bridge\Twig\Mime\TemplatedEmail could not be converted tostring").

在电子邮件中添加/嵌入图像的正确方法是什么?

最佳答案

而不是在 Controller 中获取图像并将它们发送到 Twig 页面。你可以这样做:

首先,定义一个 Twig 命名空间(例如 img)指向存储图像的文件夹。在本例中,该文件夹名为 Email_Images

将这些行添加到 config/packages/twig.yaml

twig:
# ...

paths:
# point this wherever your images live
'%kernel.project_dir%/public/Email_Images': img

现在您可以使用 email.image() twig 函数将图像嵌入到电子邮件中。

<img src="{{ email.image('@img/1.png') }}" alt="Logo">

关于php - 如何在 symfony 邮件中嵌入图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63069701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com