https://symfony.com/doc/current/bundles/FOSUserBundle/emails.html
Эта ссылка, по-видимому, объясняет, как переопределить шаблон электронной почты из FOSUserBundle для сброса пароля для пользователя.
Я получил новый файл для электронного письма о сбросе (раньше был @FOSUser/Resetting/email.txt.twig) и теперь бросаю config.yml. Я могу сказать FOSUserBundle использовать другой файл.
fos_user:
service:
mailer: fos_user.mailer.twig_swift
resetting:
email:
template: 'email/password_resetting.email.twig'
В ссылке написано, что если я добавлю «mailer: fos_user.mailer.twig_swift», можно будет обрабатывать html код.
В этот новый файл мне нужно добавить HTML-код, поэтому я попробовал, как написано в документации:
Добавление всего html-кода внутрь {% block body_html%} с или без "autoescape" -> тот же результат ... я вижу все html-теги ...
Что я делаю не так?
Бывший:
{# app/Resources/views/email/password_resetting.email.twig #}
{% block subject %}Resetting your password{% endblock %}
{% block body_text %}
{% autoescape false %}
Hello {{ user.username }} !
You can reset your password by accessing {{ confirmationUrl }}
Greetings,
the App team
{% endautoescape %}
{% endblock %}
{% block body_html %}
{#
//You can of course render the html directly here.
//Including a template as done here allows keeping things DRY by using
//the template inheritance in it
#}
<p><b>Test</b> test test</p>
{{ '<p><b>Test</b> test test</p>'|raw }}
{% include 'email/password_resetting.html.twig' %}
{% endblock %}
А содержимое файла email / pasword_resetting.html.twig:
<p><b>Test</b> test test</p>
{{ '<p><b>Test</b> test test</p>'|raw }}
И я получаю:
Hello ricard !
You can reset your password by accessing https://blablabla.bla/app_dev.php/es/resetting/reset/MiPqznsUxHQLLgviDYtCsJrQZBiaqVzDU5ENvHcadA
Greetings,
the App team
<p><b>Test</b> test test</p>
<p><b>Test</b> test test</p>
<p><b>Test</b> test test</p>
<p><b>Test</b> test test</p>
Я хотел бы видеть выделенное жирным шрифтом и построенное по абзацам предложение, а не теги.
Я также пробовал:
{# app/Resources/views/email/password_resetting.email.twig #}
{% block subject %}Resetting your password{% endblock %}
{% block body_text %}
{% autoescape false %}
Hello {{ user.username }} !
You can reset your password by accessing {{ confirmationUrl }}
Greetings,
the App team
{% endautoescape %}
{% endblock %}
{% block body_html %}
{#
//You can of course render the html directly here.
//Including a template as done here allows keeping things DRY by using
//the template inheritance in it
#}
{% autoescape 'html' %}
<p><b>Test</b> test test</p>
{{ '<p><b>Test</b> test test</p>'|raw }}
{% endautoescape %}
{% autoescape %}
<p><b>Test</b> test test</p>
{{ '<p><b>Test</b> test test</p>'|raw }}
{% endautoescape %}
<p><b>Test</b> test test</p>
{{ '<p><b>Test</b> test test</p>'|raw }}
{% endblock %}
И я получаю:
Hello ricard !
You can reset your password by accessing https://blablabla.bla/app_dev.php/es/resetting/reset/2G2ZGW262Z1THu1_80k2vAQMdI4-faNFVFWgdOVts8
Greetings,
the App team
<p><b>Test</b> test test</p>
<p><b>Test</b> test test</p>
<p><b>Test</b> test test</p>
<p><b>Test</b> test test</p>
<p><b>Test</b> test test</p>
<p><b>Test</b> test test</p>
В результате получено электронное письмо, и получатель этого письма увидит теги html, выделенные жирным шрифтом и абзацем. Я не хочу видеть html-теги, я хочу их использовать.
а где вы просматриваете свою электронную почту? ... Твой файл у меня работает ...
попробуй очистить кеш ..
Дело не в кешировании ... дело не в том, где я вижу это письмо ...




Окс, наконец-то я нашел ответ.
Я переписывал ResettingController, и в services.yml была объявлена инъекция зависимости к этому новому контроллеру, который я хотел использовать вместо контроллера по умолчанию из FOSUserBundle.
Итак, я получил:
AppBundle\Controller\ResettingController:
class: AppBundle\Controller\ResettingController
arguments: ['','@fos_user.resetting.form.factory', '','','@fos_user.mailer.default', '']
Заменен на:
AppBundle\Controller\ResettingController:
class: AppBundle\Controller\ResettingController
arguments: ['','@fos_user.resetting.form.factory', '','','@fos_user.mailer.twig_swift', '']
где вы получаете вывод html? Я имею в виду, что вам нужен вывод html, и вы его получаете ... мне кажется правильным;)