yiisoft / mailer-view
Yii Mailer message body rendering extension
Fund package maintenance!
Opencollective
yiisoft
Requires
- php: ^8.1
- yiisoft/mailer: dev-master
- yiisoft/view: ^11.0
Requires (Dev)
- maglnet/composer-require-checker: ^4.7
- phpunit/phpunit: ^10.5
- rector/rector: ^1.2
- roave/infection-static-analysis-plugin: ^1.34
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^5.20
- yiisoft/aliases: ^3.0
- yiisoft/di: ^1.3
This package is auto-updated.
Last update: 2024-10-18 07:28:38 UTC
README
Yii Mailer View
This Yii Mailer extension provides classes for composing message body via view rendering:
MessageBodyRenderer
- a view renderer used to compose message body.ViewMailer
- a mailer decorator withcompose()
method.
Requirements
- PHP 8.1 or higher.
Installation
The package could be installed with Composer:
composer require yiisoft/mailer-view
General usage
Message body renderer
use Yiisoft\Mailer\View\MessageBodyRenderer; use Yiisoft\Mailer\View\MessageBodyTemplate; use Yiisoft\View\View; $renderer = new MessageBodyRenderer( new View(), new MessageBodyTemplate( __DIR__ . '/views', 'html-layout', ), ); // HTML body $htmlBody = $renderer->renderHtml( view: 'html-content', viewParameters: ['count' => 42], layoutParameters: ['header' => 'Hello!'], ); // Text body $textBody = $renderer->renderText( view: 'html-content', viewParameters: ['count' => 42], layoutParameters: ['header' => 'Hello!'], ); // Add body to message $message = $renderer->addBodyToMessage( message: new Message(), htmlView: 'html-content', viewParameters: ['count' => 42], layoutParameters: ['header' => 'Hello!'], );
If needed, you can pass textView
parameter with the name of the text view.
Mailer decorator
/** * @var \Yiisoft\Mailer\MailerInterface $mailer * @var Yiisoft\Mailer\View\MessageBodyRenderer $messageBodyRenderer */ $viewMailer = new ViewMailer($mailer, $messageBodyRenderer); // Create message $message = $viewMailer->compose( htmlView: 'html-content', viewParameters: ['count' => 42], layoutParameters: ['header' => 'Hello!'], ); // Send message $viewMailer->send($message);
If needed, you can pass textView
parameter with the name of the text view.
Documentation
If you need help or have a question, the Yii Forum is a good place for that. You may also check out other Yii Community Resources.
License
The Yii Mailer View is free software. It is released under the terms of the BSD License.
Please see LICENSE
for more information.
Maintained by Yii Software.