7

因此,当我在生产环境中通过 fosUserBundle 表单注册时,它会向我的 gmail 发送一封电子邮件,但电子邮件中没有确认链接,只有这个

registration.email.message

在电子邮件的标题和正文中,有人知道为什么吗?

4

2 回答 2

13

这是因为电子邮件是使用翻译器获得的内容,并且您的配置错误。

确保您启用了翻译器:

# app/config/config.yml
framework:
    translator: { fallback: %locale% }

# app/config/parameters.yml
parameters:
    locale: en # default locale

此外,如果您使用与英语不同的语言编写应用程序,请确保将密钥registration.email.message翻译成它。如果不是,您可以通过编写以下文件来覆盖翻译:

# app/Resources/FOSUserBundle/translations/FOSUserBundle.{your_locale}.yml
registration:
    email:
        subject: Registration email subject
        message: |
            Here you can place the content of the email.
            It can be multiline and you even have access to
            variables %username% and %confirmationUrl%.
于 2013-03-13T23:08:35.760 回答
0

这是 FOSUser 默认邮件:

{% block subject %}
{% autoescape false %}
{{ 'registration.email.subject'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}, 'FOSUserBundle') }}
{% endautoescape %}
{% endblock %}
{% block body_text %}
{% autoescape false %}
{{ 'registration.email.message'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}, 'FOSUserBundle') }}
{% endautoescape %}
{% endblock %}
{% block body_html %}{% endblock %}

在第 8 行,“registration.email.message”是电子邮件内容。并且trans是替换过滤器。尝试这样的事情:

    {% block subject %}
    {% autoescape false %}
    {{ 'Confirmez votre inscription sur blabla.com'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}, 'FOSUserBundle') }}
    {% endautoescape %}
    {% endblock %}
    {% block body_text %}
    {% autoescape false %}
    {{ 'Bonjour %username%

    Merci de cliquer sur le lien suivant afin de confirmer votre inscription sur blabla.com:

    %confirmationUrl%'|trans({'%username%': user.username, '%confirmationUrl%': confirmationUrl}, 'FOSUserBundle') }}

{% endautoescape %}
{% endblock %}
{% block body_html %}{% endblock %}
于 2014-12-13T21:03:16.430 回答