FOSUserBundle重置电子邮件HTML模板不起作用

时间:2013-12-21 15:04:13

标签: fosuserbundle symfony-2.3

我正在尝试为用户请求密码时发送的电子邮件模板定义,但在添加HTML部分时不起作用。

这是模板:

{% trans_default_domain 'FOSUserBundle' %}
{% block subject %}
{% autoescape false %}
{{ 'resetting.email.subject'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}) }}
{% endautoescape %}
{% endblock %}
{% block body_text %}
{% autoescape false %}
{{ 'resetting.email.message'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}) }}
{% endautoescape %}
{% endblock %}
{% block body_html %}
{% autoescape false %}
<div dir="ltr" style="display: block; width: 100%; background: #ffffff">
    <table style='width: 100%; border: none'>
        <tr style='height: 20px; background-color: #5A82FF'>
            <td></td>
        </tr>
        <tr>
            <td style="padding: 30px 0; font-family: Verdana">
                    {{ 'resetting.email.message_html'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}) }}
            </td>
        </tr>
        <tr style='height: 20px; background-color: #4ED53E'>
            <td></td>
        </tr>                    
    </table>
</div>
{% endautoescape %}
{% endblock %}

当发送密码请求时,邮件以文本格式接收,其中嵌入了两个部分,这样:

Estimado jstuardo@desytec.com!

Para restablecer tu contraseña - por favor visita http://xxx.xxx.xxx.xxx

Atte,
El equipo de XXX

<div dir="ltr" style="display: block; width: 100%; background: #ffffff">
    <table style='width: 100%; border: none'>
        <tr style='height: 20px; background-color: #5A82FF'>
            <td></td>
        </tr>
        <tr>
            <td style="padding: 30px 0; font-family: Verdana">
                    Estimado jstuardo@desytec.com!
<br /><br />
Para restablecer tu contraseña - por favor visita http://xxx.xxx.xxx.xxx
<br /><br />
Atte,<br />
El equipo de XXX

            </td>
        </tr>
        <tr style='height: 20px; background-color: #4ED53E'>
            <td></td>
        </tr>                    
    </table>
</div>

可能有什么问题?

由于 海梅

1 个答案:

答案 0 :(得分:18)

我遇到了类似的问题。

默认邮件程序仅支持发送纯文本邮件。如果要发送多部分消息,最简单的解决方案是使用TwigSwiftMailer实现。它希望你的twig模板定义3个块:

  • subject包含电子邮件主题
  • body_text呈现消息的纯文本版本
  • body_html呈现html邮件

您必须在配置中设置服务(例如app / config / config.yml)

fos_user:
    # ...
    service:
        mailer: fos_user.mailer.twig_swift