因此,当我在生产环境中通过 fosUserBundle 表单注册时,它会向我的 gmail 发送一封电子邮件,但电子邮件中没有确认链接,只有这个
registration.email.message
在电子邮件的标题和正文中,有人知道为什么吗?
因此,当我在生产环境中通过 fosUserBundle 表单注册时,它会向我的 gmail 发送一封电子邮件,但电子邮件中没有确认链接,只有这个
registration.email.message
在电子邮件的标题和正文中,有人知道为什么吗?
这是因为电子邮件是使用翻译器获得的内容,并且您的配置错误。
确保您启用了翻译器:
# 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%.
这是 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 %}