zoukankan      html  css  js  c++  java
  • Yii2邮件发送

    基础版

    1.在配置文件main-local.php components=>[]里面配置

    'mailer' => [  
       'class' => 'yiiswiftmailerMailer',  
        '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 yiihelpersHtml;  
      
    /* @var $this yiiwebView */  
    /* @var $user commonmodelsUser */  
      
    $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();  
    

    文章链接 http://www.yiichina.com/tutorial/320

    希望对你们有帮助! 

    高级版

     

    邮件发送配置:

    打开配置文件将下面代码添加到 components => [...]中(例:高级版默认配置在/common/config/main-local.php)

            'mailer' => [
                'class' => 'yiiswiftmailerMailer',
                'viewPath' => '@common/mail',
                'useFileTransport' => false,    //这里一定要改成false,不然邮件不会发送
                'transport' => [
                    'class' => 'Swift_SmtpTransport',
                    'host' => 'smtp.163.com',
                    'username' => 'xianan_huang@163.com',
                    'password' => '*********',        //如果是163邮箱,此处要填授权码
                    'port' => '25',
                    'encryption' => 'tls',
                ],
            ],

    在控制器中调用:

            $mail = Yii::$app->mailer->compose()
            ->setFrom(['xianan_huang@163.com' => 'Yii 中文网'])
            ->setTo('391430388@qq.com')
            ->setSubject('邮件发送配置')
            //->setTextBody('Yii中文网教程真好 www.yii-china.com')   //发布纯文字文本
            ->setHtmlBody("<br>Yii中文网教程真好!www.yii-china.com")    //发布可以带html标签的文本
            ->send();
            if($mail)
                echo 'success';
            else
                echo 'fail';


    注意:很多报错原因都是因为163邮箱的smtp没有开,进入邮箱设置一下


    邮件发送配置-Yii中文网


    默认不开启smtp要绑定手机之后才能开启


    邮件发送配置-Yii中文网


    开启之后会给你一个授权密码,只会发送一次,要保存好,然后在上面密码出写上授权密码,并非邮箱密码。

    文章地址链接 http://www.yii-china.com/post/detail/10.html


  • 相关阅读:
    桥接模式新解:客户端服务器模式
    laravel-admin 自定义导出表单
    PHP实现git部署的方法,可以学学!
    PHP的安全性问题,你能说得上几个?
    nginx的四个基本功能
    laravel orm
    laravel-admin列表排序在使用了$grid->model()->latest()后$grid其它加上sortable()可排序的列在排序时不起作用
    Laravel 5.4: 特殊字段太长报错 420000 字段太长
    关于在phpStudy环境下,windows cmd中 php不是内部命令问题
    phpstudy安装好之后mysql无法启动(亲测可行)
  • 原文地址:https://www.cnblogs.com/liuxiaowei/p/7163542.html
Copyright © 2011-2022 走看看