Yii Mailer Library
The package provides the content composition functionality, and a basic interface for sending emails. Actual mail sending is provided by separate interchangeable packages.
Out of the box the package profiles a file mailer that, instead of actually sending an email, writes its contents into a file. There are also Swift Mailer and Symfony Mailer based official drivers available as a separate packages that actually can send emails.
Installation
The package could be installed with composer:
composer require yiisoft/mailer --prefer-dist
General usage
The following code can be used to send an email:
/**
* @var \Yiisoft\Mailer\MailerInterface $mailer
*/
$message = $mailer
->compose()
->withFrom('[email protected]')
->withTo('[email protected]')
->withSubject('Message subject')
->withTextBody('Plain text content')
->withHtmlBody('<b>HTML content</b>');
$mailer->send($message);
See Yii guide to mailing for more info.
Localize view file
You can set a specific locale that will be used to localize view files with withLocale()
method:
/**
* @var \Yiisoft\Mailer\MailerInterface $mailer
*/
$message = $mailer
->withLocale('de_DE')
->compose('html-view')
->withFrom('[email protected]')
->withTo('[email protected]')
->withSubject('Message subject');
$mailer->send($message);
Mailer implementations
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 Mailer Library is free software. It is released under the terms of the BSD License.
Please see LICENSE
for more information.
Maintained by Yii Software.