Full Stack LAMP - MEAN Developer, Python developer. Certified Azure Developer. Freelance programmer/consultant/trainer.

How to send e-mail from YII2 Application

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.

Open your 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 Swift_MailTransport.

See the following link for info on swiftmailer transport types. http://swiftmailer.org/docs/sending.html#using-the-mail-transport

Basic usage

After completing above email configurations steps. we can use below code to send emails.

    ->setSubject('Message subject')
    ->setTextBody('Plain text content')
    ->setHtmlBody('HTML content')

See the following link for info on sending emails. http://www.yiiframework.com/doc-2.0/guide-tutorial-mailing.html

  1. hi arjun,
    nice tutorial.
    but i got an issue.
    how can i know email destination is exist or not ?
    i always get return true after i send the email actually that email is not exist.
    please help..

    thanks in advance

Leave a Reply