在配置文件中(main-local.php),添加下列代码(注意是放到 components 参数里):
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'useFileTransport' =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => 'smtp.163.com', //每种邮箱的host配置不一样 'username' => '[email protected]', // 邮箱账号 'password' => 'XXXXXXXXX ', // 邮箱密码 'port' => '25', 'encryption' => 'tls', ], 'messageConfig'=>[ 'charset'=>'UTF-8', 'from'=>['[email protected]'=>'admin'] ], ],
2.在控制器中调用:
$mail= Yii::$app->mailer->compose(); $mail->setTo('[email protected]'); $mail->setSubject("邮件测试"); //$mail->setTextBody('zheshisha '); //发布纯文字文本 $mail->setHtmlBody("<br>问我我我我我"); //发布可以带html标签的文本 if($mail->send()) echo "success"; else echo "false"; die();
注意:很多报错原因都是因为163邮箱的smtp没有开,进入邮箱设置一下