首先,我们需要打开框架中\common\config\main-local.php。
写入一下代码:
<?php
return [
'components' => [
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=****',
'username' => '****',
'password' => '****',
'charset' => 'utf8',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'useFileTransport' => false, //这里需要特别注意 原代码是:'useFileTransport' => true, 把 true 改为 false 即可。
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.163.com', //邮箱 qq邮箱是smtp.qq.com
'username' => '*******@163.com', //发件人邮箱
'password' => '*******', //密码 此处是授权密码
'port' => '25', //端口号,163 是 25 QQ 是 465
'encryption' => 'tls', //这里如果使用的是QQ发送就是:ssl 使用163发送就改为:tls
],
'messageConfig'=>[
'charset'=>'UTF-8', //字符集
'from'=>['******@163.com'=>'*******'] //发件人名称,随便写
],
],
下面是控制器内的代码:
<?php
namespace backend\controllers;
use Yii;
use yii\web\Controller;
class MailController extends Controller
{
public function actionSend()
{
$mail= Yii::$app->mailer->compose();
$mail->setTo('1290485816@qq.com'); //接收人的邮箱
$mail->setSubject("***"); //邮件主题
$mail->setTextBody('****'); //发布纯文本信息
$mail->setHtmlBody("****"); //发送的可以使Html页面
var_dump($mail->send()); //打印的结果是true或false,有可能报错,报错的原因是网络不畅通
}
}