在配置文件中(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沒有開,進入郵箱設置一下