yiisoft / mailer
Yii Mailer Library
Fund package maintenance!
Opencollective
yiisoft
Installs: 72 951
Dependents: 14
Suggesters: 0
Security: 0
Stars: 17
Watchers: 16
Forks: 10
Open Issues: 1
Requires
- php: ^8.0
- psr/event-dispatcher: ^1.0
- yiisoft/view: ^6.0|^7.0|^8.0
Requires (Dev)
- maglnet/composer-require-checker: ^4.4
- phpunit/phpunit: ^9.5
- rector/rector: ^0.15.2
- roave/infection-static-analysis-plugin: ^1.25
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.30|^5.4
- yiisoft/files: ^2.0
- yiisoft/psr-dummy-provider: ^1.0
- yiisoft/test-support: ^3.0
Suggests
- yiisoft/event-dispatcher: Yii Event Dispatcher
- yiisoft/mailer-swiftmailer: Yii Mailer Library - Swift Mailer Extension
- yiisoft/mailer-symfony: Yii Mailer Library - Symfony Mailer Extension
README
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
General usage
The following code can be used to send an email:
/** * @var \Yiisoft\Mailer\MailerInterface $mailer */ $message = $mailer ->compose() ->withFrom('from@domain.com') ->withTo('to@domain.com') ->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('from@domain.com') ->withTo('to@domain.com') ->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.