creonit / mailing-bundle
v1.0.2
2020-07-22 11:08 UTC
Requires
- php: >=7.2.5
- creonit/admin-bundle: >=1.0.2
- creonit/propel-schema-converter-bundle: ^0.2.5
- propel/propel: ^2.0
- propel/propel-bundle: ^5.0
- symfony/event-dispatcher: ^4.4|^5.0
- symfony/framework-bundle: ^4.4|^5.0
- symfony/mailer: ^4.4|^5.0
- symfony/yaml: ^4.4|^5.0
Requires (Dev)
- symfony/profiler-pack: ^1.0
This package is auto-updated.
Last update: 2024-09-22 20:19:01 UTC
README
# config/packages/creonit_mailing.yaml creonit_mailing: from: 'noreply@creonit.ru' base_template: 'mail/base.html.twig' templates_path: '%kernel.project_dir%/config/mailing_templates' globals: parameter: 'value'
# config/mailing_templates/template.yaml example: title: 'Example Template' from: email: 'noreply@creonit.ru' name: 'Creonit' subject: 'Welcome' template: '<div>{{ message }}</div>'
自定义模板加载器
use Creonit\MailingBundle\Templating\Loader\AbstractTemplateLoader; use Creonit\MailingBundle\Templating\MailingTemplate; use Creonit\MailingBundle\Templating\TemplateCollection; class MyTemplateLoader extends AbstractTemplateLoader { public function load(TemplateCollection $templateCollection) { $template = new MailingTemplate('my_template'); $template ->setTitle('Example custom loader') ->setSubject('Example custom loader') ->setTemplate('<p>Custom loader</p>'); $templateCollection->add($template); } }
自定义消息构建器
use Creonit\MailingBundle\Message\MailingMessage; use Creonit\MailingBundle\Message\MessageBuilderInterface; use Creonit\MailingBundle\Templating\MailingTemplate; class MyMessageBuilder implements MessageBuilderInterface { public function build(MailingTemplate $template, array $context): MailingMessage { $message = new MailingMessage(); $message->cc('major@gmail.com'); return $message; } public function supports(MailingTemplate $template, array $context): bool { return $template->getKey() === 'my_template'; } }
发送消息
use Creonit\MailingBundle\Mailing; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Mailer\MailerInterface; class MailingController extends AbstractController { public function sendEmail(Mailing $mailing, MailerInterface $mailer) { $email = 'example@exmple.com'; $template = 'my_template'; $message = $mailing->buildMessage($template, ['message' => 'Hello']); $message->to($email); $mailer->send($message); } }