Send Mail via SMTP in Yii2 basic
Open the configuration file /config/web.php and add sending mail setting in array element components:
<?php
$params = require(__DIR__ . '/params.php');
$config = [
//...
'components' => [ 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@app/mail', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.yandex.ru', 'username' => '<username>@<yourDomain>', 'password' => '<userPassword>', 'port' => 465, 'encryption' => 'ssl', ], 'useFileTransport' => false, ], ], //... ];
Where <username>@<yourDomain> - e-mail with a letter which will be sent (for example: info@devreadwrite.com), <userpassword> - password from the mailbox <username>@<yourdomain>.
To send mail use the following code in the correct location:
Yii::$app->mailer->compose() ->setFrom('<fromUsername>@<yourDomain>') ->setTo('<user@Email>') ->setSubject('Уведемление с сайта <yourDomain>') // тема письма ->setTextBody('Текстовая версия письма (без HTML)') ->setHtmlBody('<p>HTML версия письма</p>') ->send();
Where <fromUsername>@<yourDomain> - sender e-mail (<username>@<yourDomain>), <user@Email> - recipient e-mail.
Send Mail via SMTP in Yii2 advanced
Send Mail via SMTP in Yii2 advanced virtually identical as to send in basic. Open the configuration file /common/config/main-local.php and add sending mail setting in array element components:
<?php return [ 'components' => [ //... 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.yandex.ru', 'username' => '<username>@<yourDomain>', 'password' => '<userPassword>', 'port' => 465, 'encryption' => 'ssl', ], 'useFileTransport' => false, ], ], ];
And send in the right place:
Yii::$app->mailer->compose() ->setFrom('<fromUsername>@<yourDomain>') ->setTo('<user@Email>') ->setSubject('Уведемление с сайта <yourDomain>') // тема письма ->setTextBody('Текстовая версия письма (без HTML)') ->setHtmlBody('<p>HTML версия письма</p>') ->send();
Differences in these examples only the configuration file and value of viewPath. Enjoy using.