yii2邮件发送以及邮箱配置

提示:在很多的报错种,都是由于邮箱的POP3/SMTP/IMAP没有打开,
 
设置如下:
1、登陆163邮箱,找到设置项,POP3/SMTP/IMAP
 
 
2、默认不开启smtp要绑定手机之后才能开启
 
3、开启之后会给你一个授权密码,只会发送一次,要保存好,然后在上面密码出写上授权密码,并非邮箱密码。
 
4、 邮件发送配置:

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

  
 1  'mailer' => [
 2             'class' => 'yii\swiftmailer\Mailer',
 3             'viewPath' => '@common/mail',
 4             'useFileTransport' => false,    //这里一定要改成false,不然邮件不会发送
 5             'transport' => [
 6                 'class' => 'Swift_SmtpTransport',
 7                 'host' => 'smtp.163.com',
 8                 'username' => 'zpllong@163.com',
 9                 'password' => '*********',        //如果是163邮箱,此处要填(授权码)
10                 'port' => '25',
11                 'encryption' => 'tls',
12             ],
13         ],

 

在控制器中调用:
 
 1 $mail= Yii::$app->mailer->compose();   
 2 $mail->setTo('244029201@qq.com');  
 3 $mail->setSubject("邮件测试");  
 4 //$mail->setTextBody('zheshisha ');   //发布纯文字文本
 5 $mail->setHtmlBody("<br>问我我我我我");    //发布可以带html标签的文本
 6 if($mail->send())  
 7     echo "success";  
 8 else  
 9     echo "failse";   
10     die();

附带个人写的一个小demo,写的不好希望大神不要喷我

 1 public function actionSend(){
 2     //邮件组成
 3     $mail= Yii::$app->mailer->compose();
 4 
 5     $model = new User();
 6         if(!empty($_POST)){
 7             
 8             //取到要发送的邮箱
 9             if(!empty($_POST['checkbook'])){
10                 $email_data = array();  //邮箱地址
11                 $user_id = $_POST['checkbook'];
12                 foreach ($user_id as $key => $value){
13                     $email_data[] = Yii::$app->db->createCommand("select email from item_z_user where id=$value")->queryOne(); 
14                 }
15             }
16             //取到要发送的内容
17             if(isset($_POST['activity_id'])){
18                 $activity_id = explode(',',$_POST['activity_id']);
19                 
20                 $activity_data = array();
21                 foreach ($activity_id as $key=>$value){
22                     
23                     $activity_data[$key] = Yii::$app->db->createCommand("select * from item_z_activity where id=$value")->queryOne(); 
24                 }
25             }    
26                     
27         } 
28         $send = array();
29         //第一层循环
30         foreach ($email_data as $key1 => $value1){
31             //第二层循环用邮箱作为键
32             foreach ($value1 as $key2 =>$value2){
33                 //循环要发送的信息,多条
34                 foreach ($activity_data as $key3 => $value3){
35                     foreach($value3 as $key4 => $value4){
36                         $send[$value2][$key3] = $value3;
37                     }
38                 }
39             }
40         }
41 //        var_dump($send);die;
42 
43         $mail= Yii::$app->mailer->compose();
44         //第一层循环邮箱
45         foreach ($send as $key => $value){
46             $mail->setTo($key);  
47             $mail->setSubject("邮件测试");  
48             //$mail->setTextBody('zheshisha ');   //发布纯文字文本
49             //第二层循环取内容
50             foreach ($value as $key1 => $value1){
51 //                var_dump($value1['title']);die;
52                 //拼接邮件信息字符串
53                 $email    = "";
54                 $email .= "<h1>$value1[title]</h1>";
55                 $email .= "<h2>date('Y-m-d',$value1[createtime])</h2>";
56                 $email .= "<h2>$value1[num]</h2>";
57                 $email .= "<h2>$value1[desciption]</h2>";
58                 $email .= "<h2>$value1[content]</h2>";
59                 $email .= "<h2>$value1[register]</h2>";
60                 $email .= "<h2>$value1[content]</h2><br/>";
61                 
62                 $mail->setHtmlBody("$email");    //发布可以带html标签的文本                
63                 if($mail->send())  
64                         $redirect =  "success";  
65                     else  
66                         $redirectecho = "failse";               
67                 }
68             }
69         return $this->render('send',[
70           'redirect' => $redirect,
71        ]);
72  }


 

转载于:https://www.cnblogs.com/wamp/p/5310186.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值