尝试使用带有 FOSUserBundle 的模板进行电子邮件检查

Try to use a template with FOSUserBundle for email checking

我使用 FOSUserBundle 来处理我的用户访问管理。

注册表格工作正常,我的用户已在我的数据库中注册,并且在网页上显示了检查电子邮件页面。

问题与确认电子邮件有关。 它被发送到用户电子邮件,但它不使用我的 app/config.yml.

中定义的模板

所以我想我没有定义它应该的样子。

实际上我只找到了 config.yml 的示例,其中模板参数定义在重置部分,尽管我感兴趣的不是重置部分(还没有),而是注册部分。

这是我的 config.yml 文件:

fos_user:
db_driver: orm
firewall_name: main
user_class: CSW78\Bundle\Entity\User
service:
    mailer: fos_user.mailer.twig_swift
registration:
    form:
        type: user
    confirmation:
        enabled: false
        from_email:
            address: xxx.xxx@icloud.com
            sender_name: bla bla bla
resetting:
    email:
        template: Mail/registration.email.twig

所以我的 registration.email.twig 位于 app/Resources/views/Mail.

顺便说一下,我通过我的联系表测试了 Swift 邮件程序本身的功能,它可以完美地发送电子邮件。

鉴于:

fos_user:
     service:
         mailer: fos_user.mailer.twig_swift
     registration:
        form:
            type: user
        confirmation:
            enabled: false
            template: Email/registration.email.twig
            from_email:
                address: xxx.xxx@icloud.com
                sender_name: bla bla bla

然后用户电子邮件将使用 app/Resources/views/Email/registration.email.twig 处的模板。

Email/registration.email.twig:

{% block subject %}Registration confirmation{% endblock %}

{% block body_text %}
{% autoescape false %}
Hello {{ user.firstName }} {{ user.lastName }} !

Please confirm your registration by visiting {{ confirmationUrl }}

Thank you,
The Team
{% endautoescape %}
{% endblock %}

{% block body_html %}
{% include 'Email/registration.html.twig' %}
{% endblock %}

Email/registration.html.twig:

{% block body_html %}
    <p>Hello <b>{{ user.firstName }} {{ user.lastName }}</b>!</p>

    <p>Please confirm by visiting <a href="{{ confirmationUrl }}">this link</a>.</p>

    <p>Thank you.</p>

    <p>The Team</p>
{% endblock %}