schvoy/mail-template-bundle

邮件模板包帮助您轻松构建电子邮件。

安装: 15

依赖项: 0

建议者: 0

安全性: 0

星标: 1

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

v0.7.0 2024-08-06 20:15 UTC

This package is auto-updated.

Last update: 2024-09-07 08:28:08 UTC


README

邮件模板包有助于从不同的来源(Twig或数据库)构建和发送电子邮件。

安装

通过composer安装

composer require schvoy/mail-template-bundle

在twig配置中注册模板

twig:
    ...
    paths:
        '%kernel.project_dir%/vendor/schvoy/mail-template-bundle/src/Resources/views': MailTemplateBundle

定义所需的环境变量

  • MAILER_SENDER_ADDRESS
  • MAILER_SENDER_NAME
  • MAILER_SIGNATORY

用法

基于Twig的电子邮件

基本上,如果您使用基于Twig的电子邮件,包将使用默认的电子邮件模板(email_base_template)。您只需定义subjectbody参数即可。这些可以是文本或翻译键。

如果您使用自定义电子邮件模板(覆盖:email_base_template配置),您可以为您的MailType(s)添加更多参数,并且这些参数将在您的模板中可用。

    {{ __mailType.subject }}
    {{ __mailType.body }}
    {{ __mailType.customParameter }}

参数必须具有公开访问权限或公开方法才能访问

创建新的基于Twig的邮件类型

<?php

declare(strict_types=1);

namespace App\Mails;

use Schvoy\MailTemplateBundle\Mailer\AbstractMailType;
use Schvoy\MailTemplateBundle\Mailer\Engine\TwigBased;

class TestMailType extends AbstractMailType
{
    use TwigBased;

    protected string $subject = 'first_email.test.subject'; // Translation key

    protected string $body = 'first_email.test.body'; // Translation key
}

发送电子邮件

$testMail = $mailSender->getMailType(TestMailType::class);

$mailSender->send(
    $testMail,
    [
        new Recipient('test@example.com', 'Test user'),
        new Recipient('test-2@example.com'),
    ],
    [
        'parameters' => [
            '%test%' => 'Test parameter',
        ],
    ]
);

默认电子邮件(模板)参数

[
    '__greeting' => true,
    '__signature' => true,
    '__userName' => $recipient->getName() ?? false,
    '__mailType' => $mailType,
    '__translationDomain' => $this->parameterBag->get(
        sprintf('%s.%s', MailTemplateBundleExtension::ALIAS, 'translation_domain')
    ),
    '__locale' => 'en',
    'parameters' => [
        '%userName%' => $recipient->getName(),
        '%signatory%' => $this->parameterBag->get('mailer_signatory'),
    ],
]

配置参考

mailer_template_bundle:
    translation_domain: <string>
    email_base_template: <string>
    email_base_css_template: <string>

尚未支持 - TODO

  • 基于数据库的邮件类型
  • CC和BCC
  • 邮件附件