sfk/email-template-bundle

此包已被废弃,不再维护。未建议替换包。

此包帮助您在Symfony2应用中处理电子邮件。从Twig或数据库渲染电子邮件,非常简单!

v1.0.2 2016-03-18 16:00 UTC

This package is not auto-updated.

Last update: 2023-04-01 05:11:33 UTC


README

当您需要从应用中发送不同类型的电子邮件时,此包非常有用,例如用户注册或忘记密码的电子邮件。请阅读使用说明。

Build Status

安装

通过Composer添加包(Symfony 2.1)

php composer.phar require sfk/email-template-bundle:dev-master

将包添加到您的应用内核

// app/AppKernel.php
public function registerBundles() 
{
    $bundles = array(
        // ...
        new Sfk\EmailTemplateBundle\SfkEmailTemplateBundle(),
    );
}

使用方法

  • 在您的包中创建注册电子邮件模板
src/Acme/DemoBundle/Resources/views/[Emails]/user_registered.html.twig
  • 编辑模板
// src/Acme/DemoBundle/Resources/views/[Emails]/user_registered.html.twig
{% extends 'SfkEmailTemplateBundle::email.html.twig' %}

{% block from -%}
example@example.org
{%- endblock %}

{% block subject -%}
Thanks for registering {{ first_name }}!
{%- endblock %}

{% block body -%}
Hello {{ first_name }},
<br />
<br />
Thank you for registering at our website! below your account details:
<br />
<br />
First Name: {{ first_name }}<br />
Last Name: {{ last_name }}<br />
Email: {{ email }}<br />
<br />
Thanks
{%- endblock %}
  • 现在您可以从控制器中发送它
<?php
// ...
class UserController extends Controller {
    public function registerAction() {
        // ...
        if ($form->isValid()) {
            //.. some actions here
            $formData = array(
                'email' => 'johndoe@example.com',
                'first_name' => 'John',
                'last_name' => 'Doe',
            );
            $template = $this->get('sfk_email_template.loader')
                ->load('AcmeDemoBundle:Emails:user_registered.html.twig', $formData)
            ;
            $message = \Swift_Message::newInstance()
                ->setSubject($template->getSubject())
                ->setFrom($template->getFrom())
                ->setBody($template->getBody(), 'text/html')
                ->setTo($formData['email'])
            ;
            // send email
            $this->get('mailer')->send($message);
        }
    }
}

就这些!John Doe将收到以下电子邮件

Hello John,
Thank you for registering at our website! below your account details:

First Name: John
Last Name: Doe
Email: johndoe@example.com

Thanks

高级使用方法

致谢

此包受在Symfony2中使用Twig渲染电子邮件一文的启发。感谢其作者。