yii2.0发送qq邮件详情配置

首先要想使用qq发送邮件必须打开使用的qq邮箱里的一个配置,

在页面里往下拉会看到

这两项就是配置是否允许网页代码发送接受邮件,

接下来就该配置项目里的配置文件了,在 common\config\main.local.php 更改,

在文件里的components里添加配置:

 //发邮件配置
        'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'useFileTransport' =>false,    //这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'smtp.qq.com',  //每种邮箱的host配置不一样
                'username' => '自己的qq号码@qq.com',//邮箱账号
                'password' => '*******',//邮箱密码(填授权码!!!)
                'port' => '465',    //端口号
                'encryption' => 'ssl',   //加密方式

                ],
            'messageConfig'=>[
                'charset'=>'UTF-8',
                'from'=>['admin@*****.com'=>'admin']
                ],
            ],

添加好配置后就可以写控制器方法了:

public function actionMail()
{
    $mail=Yii::$app->mailer->compose()  
                ->setFrom([1111111@qq.com'=>'王晓明']) //和上面的from字段相对应  可以只写一个  
                   ->setTo('2222222@qq.com')  //发送给谁
                   ->setSubject('标题测试邮件')  //邮件标题
                   ->setTextBody('明天考试');  //发布纯文字文本
                // ->setHtmlBody("<br>问我我我我我"); //发布可以带html标签的文本
           if ($mail->send()) {
               echo "发送成功";
           }else{
               echo "失败";
           }
}            

上面是测试的demo,真正应用时方法写成活值,

不用额外单独去继承什么东西或者model,

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('1401619705@qq.com');  
       $mail->setSubject("邮件测试");  
       $mail->setTextBody('zheshisha ');  
       if($mail->send())  
           echo "success";  
       else  
           echo "failse";   
     die(); 

 以上就是整理的发送邮件的内容,希望对学习yii2.0的伙伴们能有所帮助。


注:本文由王智磊(王大宝儿)整理编写,也参考借鉴了很多大神的笔记,分享代码,分享成功,欢迎各位交流和转载,转载请注明出处(博客园:王大宝儿)http://www.cnblogs.com/wangzhilei/

posted @ 2017-03-26 20:14  王大宝儿  阅读(508)  评论(0编辑  收藏  举报