3.4 KiB
Yii Mailer Library - Symfony Mailer Extension
This extension provides a Symfony Mailer mail solution for Yii framework 2.0.
For license information check the LICENSE-file.
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist yiisoft/yii2-symfonymailer
or add
"yiisoft/yii2-symfonymailer": "~2.0.0"
to the require section of your composer.json.
Usage
To use this extension, simply add the following code in your application configuration:
return [
//....
'components' => [
'mailer' => [
'class' => \yii\symfonymailer\Mailer::class,
'transport' => [
'scheme' => 'smtps',
'host' => '',
'username' => '',
'password' => '',
'port' => 465,
'dsn' => 'native://default',
],
'viewPath' => '@common/mail',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure transport
// for the mailer to send real emails.
'useFileTransport' => false,
],
],
];
or
return [
//....
'components' => [
'mailer' => [
'class' => \yii\symfonymailer\Mailer::class,
'transport' => [
'dsn' => 'smtp://user:pass@smtp.example.com:25',
],
],
],
];
You can then send an email as follows:
Yii::$app->mailer->compose('contact/html')
->setFrom('from@domain.com')
->setTo($form->email)
->setSubject($form->subject)
->send();
Migrating from yiisoft/yii2-swiftmailer
Follow these steps to migrate from the deprecated yiisoft/yii2-swiftmailer to this extension:
-
Swiftmailer default transport was the
SendmailTransport
, while this extension will default to aNullTransport
(sends no mail). You can use the swiftmailer default by defining in application config:'mailer' => [ 'class' => yii\symfonymailer\Mailer::class, 'transport' => [ 'dsn' => 'sendmail://default', ], ],
-
Codeceptions TestMailer specifies
swiftmailer\Message
as a default class in https://github.com/Codeception/module-yii2/blob/master/src/Codeception/Lib/Connector/Yii2/TestMailer.php#L8. This can also be changed by defining in test config:'mailer' => [ 'class' => yii\symfonymailer\Mailer::class, 'messageClass' => \yii\symfonymailer\Message::class, ],