Hi there, This tutorial will show you how to send emails from the yii2 application. Sending emails from the yii2 application is not a tedious task, in fact, we just need to edit/add the config options in your config file.
Yii2 providing a flexible interface for send emails, however, to send emails we have to use external Email libraries/extensions.
Yii2 by default using
yii2-swiftmailer official extension.
config/wep.php file and make the following adjustments to send emails using email function.
Find the following:
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', // send all mails to a file by default. You have to set // 'useFileTransport' to false and configure a transport // for the mailer to send real emails. 'useFileTransport' => true, ],
This will be under the components parameters in the config array. In advanced YII2 application, the file will be in
common/main-local.php by default.
Change the code to this:
return [ 'components' => [ ... 'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', 'transport' => [ 'class' => 'Swift_MailTransport', ], 'useFileTransport' => false, ], ], ];
useFileTransport must be changed to
false and transport is set to use
See the following link for info on
swiftmailer transport types. http://swiftmailer.org/docs/sending.html#using-the-mail-transport
After completing above email configurations steps. we can use below code to send emails.
Yii::$app->mailer->compose() ->setFrom('firstname.lastname@example.org') ->setTo('email@example.com') ->setSubject('Message subject') ->setTextBody('Plain text content') ->setHtmlBody('HTML content') ->send();
See the following link for info on sending emails. http://www.yiiframework.com/doc-2.0/guide-tutorial-mailing.html