Yii2邮件发送

Posted tiandi2050

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2邮件发送相关的知识,希望对你有一定的参考价值。

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‘,  
                           
                   ],   
   ‘messageConfig‘=>[  
       ‘charset‘=>‘UTF-8‘,  
       ‘from‘=>[‘[email protected]‘=>‘admin‘]  
       ],  
],  

2、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是想tiandi.php里面传递的参数。

邮件模板 tiandi.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();  

    

以上是关于Yii2邮件发送的主要内容,如果未能解决你的问题,请参考以下文章

yii2 邮件发送(有图有真相)

yii2 邮件发送

yii2.0邮件发送问题解决

Yii2 advance swiftmailer 不能发送邮件

yii2 联系我们发送邮件报错

无法从测试网站yii2 swiftmailer发送邮件