Yii2 郵件發送[ 2.0 版本 ]

1.在配置文件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' => '*******',  
       'port' => '25',  
       'encryption' => 'tls',  
       ],
  //有可能會出現一直加載報Expected response code 220 but got an empty response錯誤
  //把這段註釋打開,可能是你郵箱開啓了授權碼登錄
  //'transport'=>[
  //    'class'=>'Swift_SmtpTransport',
  //    'host'=>'smtp.163.com',
  //    'username'=>"[email protected]",
  //    'password'=>"客戶端授權密碼",
  //    'port' => '994',
  //    'encryption' => 'ssl'
  //],   
   'messageConfig'=>[  
       'charset'=>'UTF-8',  
       'from'=>['[email protected]'=>'admin']  
       ],  
],  
  1. controller控制器中 代碼:
<?php
$mail= Yii::$app->mailer->compose();   
$mail->setTo('***********@qq.com');  
$mail->setSubject("郵件測試");  
//$mail->setTextBody('zheshisha ');   //發佈純文字文本
$mail->setHtmlBody("<br>問我我我我我");    //發佈可以帶html標籤的文本
if($mail->send())  
    echo "success";  
else  
    echo "failse";   
die(); 
?>

ok,這樣就可以發送郵件了

如需加載模板 把$mail= Yii::$app->mailer->compose(); 修改成 $mail= Yii::$app->mailer->compose('xiaoma',['aa'=>222]); 注:aa是想xiaoma.php裏面傳遞的參數。

郵件模板 xiaoma.php裏面的代碼 :

<?php  
use yii\helpers\Html;  
  
/* @var $this yii\web\View */  
/* @var $user common\models\User */  
  
$resetLink = Yii::$app->urlManager->createAbsoluteUrl(['site/reset-password', 'token' => $aa]);  
?>  
  
  
< a href="#" ><?php echo $resetLink ?></a>  

加載模板的郵件代碼:

$mail= Yii::$app->mailer->compose('xiaoma',['aa'=>222]);  
       $mail->setTo('[email protected]');  
       $mail->setSubject("郵件測試");  
       $mail->setTextBody('zheshisha ');  
       if($mail->send())  
           echo "success";  
       else  
           echo "failse";   
     die();  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章