synolia/sylius-mail-tester-plugin

邮件测试插件。

安装数: 98,421

依赖者: 1

建议者: 0

安全: 0

星标: 12

关注者: 13

分支: 7

开放问题: 0

类型:sylius-plugin

This package is auto-updated.

Last update: 2024-09-22 08:31:10 UTC


README

License CI - Analysis CI - Sylius Version Total Downloads

邮件测试插件

通过将邮件发送到您的Sylius管理面板中的邮箱来测试您的邮件如何渲染。

Capture SentEmail

功能

  • 查看所有sylius邮件的列表
  • 逐个将示例邮件发送到您的邮箱地址
  • 将所有示例邮件发送到您的邮箱地址
  • 对于每封邮件,您必须选择在模板中使用的实体。

需求

安装

  1. 在您的composer.json中添加包及其依赖项

    $ composer require synolia/sylius-mail-tester-plugin
  2. 通过在您的config/bundles.php文件中添加来启用插件

    Synolia\SyliusMailTesterPlugin\SynoliaSyliusMailTesterPlugin::class => ['all' => true],
  3. 创建一个新的文件config/routes/mailtester.yaml,内容如下

    synolia_mail_tester:
        resource: "@SynoliaSyliusMailTesterPlugin/Resources/config/admin_routing.yaml"
        prefix: '/%sylius_admin.path_name%'

用法

  • 登录到管理面板
  • 在主菜单的配置部分点击邮件测试
  • 输入将接收示例邮件模板的邮箱地址
  • 选择您想发送的邮件。
  • 点击选择主题
  • 填写空白框并选择您的实体。
  • 点击提交按钮。

允许发送自定义邮件

为了能够发送带有变量的自定义邮件,您必须添加一个表单类型,该表单类型会将这些变量添加到表单中。重要的是,您的Form Type必须实现ResolvableFormTypeInterface,以便我们的FormTypeResolver可以找到它。

<?php

declare(strict_types=1);

namespace Synolia\SyliusMailTesterPlugin\Form\Type;

use Sylius\Component\Core\Model\Order;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Synolia\SyliusMailTesterPlugin\Resolver\ResolvableFormTypeInterface;

public class CustomEmailType extends AbstractType implements ResolvableFormTypeInterface
{
    /** @var string */
    private const SYLIUS_EMAIL_KEY = 'custom_email'; //this should match your email identification key in sylius_mailer.yaml.

    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        parent::buildForm($builder, $options);

        /**
         * The key 'order' represent the name of the variable in your template.
         * Then you specify the type of the variable.
         * In this example we provide a list of all available orders.
         */
        $builder->add('order', EntityType::class, [
            'class' => Order::class,
            'choice_label' => 'number',
        ]);
    }

    public function support(string $emailKey): bool
    {
        return $emailKey === self::SYLIUS_EMAIL_KEY;
    }

    public function getCode(): string
    {
        return self::SYLIUS_EMAIL_KEY;
    }

    public function getFormType(string $emailKey): ResolvableFormTypeInterface
    {
        return $this;
    }
}

开发

查看如何贡献

许可证

此库受MIT许可证的约束。

鸣谢

Synolia开发。