sfcod/email-engine

Symfony的邮件引擎

安装量: 1,911

依赖项: 0

建议者: 0

安全: 0

星标: 9

关注者: 2

分支: 2

开放问题: 0

类型:symfony-bundle

1.2.0 2022-12-16 13:52 UTC

This package is auto-updated.

Last update: 2024-09-12 08:14:57 UTC


README

Scrutinizer Code QualityCode Climate

提供使用发送者+存储库组合的队列发送带有附件的参数化电子邮件的可能性。

配置

sfcod_email_engine:
    main_sender: chained_sender
    senders:
        chained_sender:
            chain:
                senders: [db_swiftmailer_sender, twig_file_swiftmailer_sender]
        twig_file_swiftmailer_sender:
            sender:
                class: SfCod\EmailEngineBundle\Sender\SwiftMailerSender
            repository:
                class: SfCod\EmailEngineBundle\Repository\TwigFileRepository
        db_swiftmailer_sender:
            sender:
                class: SfCod\EmailEngineBundle\Sender\SwiftMailerSender
            repository:
                class: SfCod\EmailEngineBundle\Repository\DbRepository
                arguments: { entity: <entity_class>, attribute: slug }
    templates:
        - SfCod\EmailEngineBundle\Example\TestTemplate

其中“模板”部分需要用于“SfCod\EmailEngineBundle\Mailer\TemplateManager”服务以及用于参数自动注入/自动配置为服务。使用它,您可以获取所有可能的电子邮件模板参数、描述等。

<entity_class>实现SfCod\EmailEngineBundle\Entity\EmailEntityInterface

使用方法

use SfCod\EmailEngineBundle\Mailer\Mailer;
use SfCod\EmailEngineBundle\Example\TestOptions;
use SfCod\EmailEngineBundle\Example\TestTemplate;

public function indexAction(Mailer $mailer) {
    $options = new TestOptions('some message', 'attachment_path');
    $template = new TestTemplate($options);
    $mailer->send($template, 'example@email.com');
}

如果您想使用SfCod\EmailEngineBundle\Sender\SwiftMailerSender与SfCod\EmailEngineBundle\Repository\TwigFileRepository,那么您必须实现SfCod\EmailEngineBundle\Template\TwigTemplateAwareInterface。

并且TestTemplate电子邮件将通过SwiftMailerSender发送,模板数据将从DbRepository收集。如果失败,将使用SwiftMailerSender+TwigFileRepository,因为它们都列在“chained_sender”中(见配置部分)。