yii2 邮件发送

来源:互联网 发布:java写一个视频播放器 编辑:程序博客网 时间:2024/06/04 20:08

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' => '15618380091@163.com',         'password' => '*******',         'port' => '25',         'encryption' => 'tls',                                                ],      'messageConfig'=>[         'charset'=>'UTF-8',         'from'=>['15618380091@163.com'=>'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('1401619705@qq.com');         $mail->setSubject("邮件测试");         $mail->setTextBody('zheshisha ');         if($mail->send())             echo "success";         else             echo "failse";        die();  

希望对你们有帮助!

在配置文件main-local.php components=>[]里面配置[前frontend,后backend]
QQ邮箱配置
$config = [    'components' => [        //发邮件        'mailer' => [            'class' => 'yii\swiftmailer\Mailer',            'useFileTransport' =>false,//这句一定有,false发送邮件,true只是生成邮件在runtime文件夹下,不发邮件            'transport' => [                'class' => 'Swift_SmtpTransport',                'host' => 'smtp.qq.com',  //每种邮箱的host配置不一样                 'username' => '00000@qq.com',                'password' => '*****',//修改为自己的授权码                'port' => '465',//设置ssl连接smtp服务器的远程服务器端口号 可选465587                'encryption' => 'ssl',//163tls            ],            'messageConfig'=>[                'charset'=>'UTF-8',                'from'=>['00000@qq.com']            ],        ],        'request' => [            // !!! insert a secret key in the following (if it is empty) - this is required by cookie validation            'cookieValidationKey' => 'd2q7G-N_RDSS1ZpTo2G33rYaigjP0uaq',        ],    ],];

  1. controller控制器中 代码:
 //发送邮箱    public function actionFemail(){        if($_POST){            $post=\Yii::$app->request->post();            $postid=$post['id'];            $url="http://127.0.0.1/phpNine/YII/frontend/web/index.php?r=sitea/regist&id=".$post['id'];            $connection=\Yii::$app->db;            $command = $connection->createCommand("SELECT * FROM register WHERE id={$post['id']}");            $posta = $command->queryOne();            $mail=Yii::$app->mailer->compose();            $mail->setTo($post['bname']);            $mail->setSubject('邮件测试');            $mail->setHtmlBody('您的好友'.$posta['username']."邀请你来欢乐谷一起heppy<br><a href='http://127.0.0.1/phpNine/YII/frontend/web/index.php?r=sitea/regist&id=$postid'>点击注册</a>");            if($mail->send()){                $date['uid']=$postid;                $date['yusername']=$post['bname'];                $date['ytime']=date('Y-m-d H:i',time());                $connection->createCommand()->insert("signyemail",$date)->execute();                $pos = $connection->createCommand("SELECT COUNT(*) FROM signyemail WHERE uid='$postid'")->queryColumn();                $posta['num']=$pos[0][0];                echo "<script>alert('邀请成功')</script>";                sleep(3);                return $this->render('sign',['model'=>$posta]);            }else{                echo "<script>alert('邀请失败')</script>";                return $this->render('invite',['model'=>$posta]);            }        }    }

ok,这样就可以发送邮件了




原创粉丝点击