====== Yii2 Setting up email ======
This is based on Yii2 Advanced Application template.
===== Configuration (Multiple) =====
In file ''common/config/main-local.php'' set '''useFileTransport' => false'' from the default of true
Update ''common/config/main-local.php'' to include below where two configurations are used.
'mailerGmail' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@common/mail',
'useFileTransport' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.gmail.com',
'username' => 'USER@gmail.com',
'password' => 'PASSWORD',
'port' => '587',
'timeout' => 5,
'encryption' => 'tls',
],
],
'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' => false,
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => '192.168.1.20',
//'username' => 'user@domain.fr',
//'password' => '*******',
'port' => '25',
'timeout' => 5,
// 'encryption' => 'tls',
],
],
===== Choosing which Mail Configuration to use =====
In ''common/config/params-local.php'' define ''mailer'' as below
'mailer',
'mailoptbatch' => 'mailer',
//'mailopt' => 'mailerGmail',
//'mailopt' => 'mailerGmail1',
'adminEmail' => 'system@example.org',
'supportEmail' => 'support@example.org',
'noreplyEmail' => 'noreply@example.org',
'senderEmail' => 'yesreply@example.org',
'senderName' => 'example.org mailer',
];
Then when using mail function do the below:
$mailopt = Yii::$app->params['mailopt'];
return Yii::$app->$mailopt->compose()
->setTo($email)
->setFrom([Yii::$app->params['senderEmail'] => Yii::$app->params['senderName']])
->setReplyTo([$this->email => $this->name])
->setSubject(Yii::$app->params['emailSubjectPrefix'] . $this->subject)
->setTextBody($this->body)
->send();