2013-12-21 3 views
6

Я пытаюсь определить свой собственный шаблон для электронной почты, который отправляется при запросе пользователя для пароля, но при добавлении части HTML он не работает.FOSUserBundle сброс 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 [email protected]! 

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 [email protected]! 
<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> 

Что может быть неправильно?

Благодаря Jaime

ответ

16

я столкнулся с подобной проблемой.

По умолчанию почтовая программа поддерживает только отправку текстовых сообщений. Если вы хотите отправлять многостраничные сообщения, самым простым решением является использование реализации TwigSwiftMailer. Он ожидает, что ваш шаблон веточка определить 3 блоков:

  • subject, содержащий тему сообщения электронной почты
  • body_text рендеринга в виде обычного текста сообщения
  • body_html рендеринга HTML почты

Вы должны установить служба в конфигурации (например, app/config/config.yml)

fos_user: 
    # ... 
    service: 
     mailer: fos_user.mailer.twig_swift 
+1

Он отлично работает Спасибо за ваш ценный ответ ............ –

Смежные вопросы