我在symfony项目中使用fosUserBundle。我正试图通过邮件确认用户的注册。用户能够接收包含电子邮件的电子邮件以点击它以激活他的帐户,但问题是他无法点击它,因此为了激活他的帐户,他必须复制粘贴浏览器中的链接。 你能帮我解决一下这个问题,让用户更轻松一点,这样他就能点击链接直接进行指导吗? 这是我正在使用的代码:
fos_user:
# ...
service:
mailer: fos_user.mailer.twig_swift
resetting:
email:
template: email/password_resetting.email.twig
{# 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 %}
{% include 'email/password_resetting.html.twig' %}
{% endblock %}
答案 0 :(得分:0)
从您的问题说明中,我了解电子邮件是以纯文本形式发送的,因此客户的电子邮件客户端不会将该链接解析为HTML链接。
默认邮件程序仅支持发送纯文本邮件。如果你 想要发送多部分消息,最简单的解决方案是使用 而实施TwigSwiftMailer。
请检查FOSUserBundle documentation以HTML格式发送电子邮件。
答案 1 :(得分:0)
您需要覆盖默认的FOSUserBundle电子邮件模板。
在 app / config / config.yml 中注释或删除'模板'选项:
resetting:
email:
# template: email/password_resetting.email.twig
接下来,递归创建目录:
app/Resources/FOSUserBundle/views/Resetting/
这是FOSUser供应商目录中的确切目录结构。
从vendor /复制email.txt.twig并将其放入:
app/Resources/FOSUserBundle/views/Resetting/email.txt.twig
现在,在模板中进行所有必要的调整。
请记住,捆绑包默认使用翻译,因此您可能希望更改或删除模板中的行:
{% trans_default_domain 'FOSUserBundle' %}