Yii2邮件发送

来源:互联网 发布:何炅主持的网络节目 编辑:程序博客网 时间:2024/05/20 23:35

基础版

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();  

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

希望对你们有帮助! 

高级版

邮件发送配置:

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

        'mailer' => [            'class' => 'yii\swiftmailer\Mailer',            '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


0 0
原创粉丝点击