Yii Mailer Library - Symfony Mailer Extension
This package is an adapter for yiisoft/mailer relying on symfony/mailer.
Requirements
- PHP 7.4 or higher.
Installation
The package could be installed with composer:
composer require yiisoft/mailer-symfony --prefer-dist
General usage
Creating a mailer:
use Yiisoft\Mailer\MessageBodyRenderer;
use Yiisoft\Mailer\MessageBodyTemplate;
use Yiisoft\Mailer\MessageFactory;
use Yiisoft\Mailer\Symfony\Mailer;
use Yiisoft\Mailer\Symfony\Message;
/**
* @var \Psr\EventDispatcher\EventDispatcherInterface $dispatcher
* @var \Symfony\Component\Mailer\Transport\TransportInterface $transport
* @var \Yiisoft\View\View $view
*/
$template = new MessageBodyTemplate('/path/to/directory/of/view-files');
$mailer = new Mailer(
new MessageFactory(Message::class),
new MessageBodyRenderer($view, $template),
$dispatcher,
$transport,
);
Sending a mail message:
$message = $mailer->compose()
->withFrom('[email protected]')
->withTo('[email protected]')
->withSubject('Message subject')
->withTextBody('Plain text content')
->withHtmlBody('<b>HTML content</b>')
;
$mailer->send($message);
// Or several
$mailer->sendMultiple([$message]);
Additional methods of the Yiisoft\Mailer\Symfony\Mailer
:
withEncryptor()
- Returns a new instance with the specified encryptor instance.withSigner()
- Returns a new instance with the specified signer instance.
For more information about signing and encrypting messages, see the corresponding section of the documentation.
The Yiisoft\Mailer\Symfony\Message
class provides a single getSymfonyEmail()
method that returns a Symfony Email instance.
For use in the Yii framework, see the configuration files:
See Yii guide to mailing and Symfony Mailer documentation for more info.
Testing
Unit testing
The package is tested with PHPUnit. To run tests:
./vendor/bin/phpunit
Mutation testing
The package tests are checked with Infection mutation framework with Infection Static Analysis Plugin. To run it:
./vendor/bin/roave-infection-static-analysis-plugin
Static analysis
The code is statically analyzed with Psalm. To run static analysis:
./vendor/bin/psalm
License
The Yii Framework Symfony Mailer Extension is free software. It is released under the terms of the BSD License. Please see LICENSE
for more information.
Maintained by Yii Software.