Laravel 发送邮件

来源:互联网 发布:fluke网络测试仪使用 编辑:程序博客网 时间:2024/06/04 19:57

step1:

邮件配置:

config/mail.PHP

[php] view plain copy
  1.     return [    
  2.         /* 
  3.         1.用于配置默认的邮件发送驱动,Laravel支持多种邮件驱动方式: 
  4.         包括smtp、Mailgun、Maildrill、Amazon SES、mail和sendmail,Mailgun和Amazon SES都是收费的; 
  5.         2.Maildrill目前不支持中国区用户,这三个都是第三方邮件服务。 
  6.         mail驱动使用PHP提供的mail函数发送,sendmail驱动通过Sendmail/Postfix(Linux)提供的命令发送邮件,smtp驱动通过支持ESMTP的SMTP发送邮件。 
  7.         注:ESMTP即Extended SMTP, 是对标准 SMTP 协议进行的扩展,它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户, 
  8.         而用 ESMTP 发信时,服务器会要求用户提供用户名和密码以便验证身份。 
  9.         3.就目前状况来看,使用smtp是最明智的选择,mail不安全,sendmail需要安装配置Sendmail/Postfix,其他要么付费要么不能用。 
  10.         下面其它配置的说明都基于driver是smtp。 
  11.         */  
  12.         'driver' => env('MAIL_DRIVER''smtp'),  //[smtp]  
  13.   
  14.         /* 
  15.             host是邮箱所在主机,比如我们使用163邮箱,对应值是smtp.163.com,使用QQ邮箱的话,对应值是smtp.qq.com。 
  16.         */  
  17.         'host' => env('MAIL_HOST''smtp.mailgun.org'),  //[smtp.163.com]  
  18.   
  19.         /* 
  20.             用于配置邮箱发送服务端口号,比如一般默认值是25,但如果设置SMTP使用SSL加密,该值为465。 
  21.         */  
  22.         'port' => env('MAIL_PORT', 587),  //[25]  
  23.   
  24.         /* 
  25.             配置项包含address和name,前者表示发送邮箱,后者表示发送邮件使用的用户名。 
  26.         */  
  27.         'from' => ['address' => '***@163.com''name' => null],  //[['address' => '15*******9@163.com', 'name' => '15********9@163.com']]  
  28.   
  29.         /* 
  30.             表示加密类型,可以设置为null表示不使用任何加密,也可以设置为tls/ssl。 
  31.         */  
  32.         'encryption' => env('MAIL_ENCRYPTION''tls'), //[tls]   
  33.   
  34.         /* 
  35.             表示邮箱账号,比如'***@163.com'[必要时参照from中的address值] 
  36.         */  
  37.         'username' => env('MAIL_USERNAME'), //[15*******9@163.com]  
  38.   
  39.         /* 
  40.             表示上述邮箱密码【网易163邮箱则为授权密码】。 
  41.         */   
  42.         'password' => env('MAIL_PASSWORD'), //[r*******3]  
  43.   
  44.        /* 
  45.             是在设置driver为sendmail时使用,用于指定sendmail命令路径。 
  46.         */  
  47.         'sendmail' => '/usr/sbin/sendmail -bs',   
  48.   
  49.         /* 
  50.             用于配置是否将邮件发送记录到日志中,默认为false则发送邮件不记录日志; 
  51.             如果为true的话只记录日志不发送邮件,这一配置在本地开发中调试时很有用。 
  52.         */  
  53.         'pretend' => false,    
  54.   
  55.     ]    

step2:

ActiveController.php控制器:

[php] view plain copy
  1. public function send()  {    
  2.         $data = ['uid'=>'1','activationcode'=>'irjwldsfg1843da','name'=>'xxx','content'=>'xbb','date'=>'2016-11-09'];    
  3.         $flag = Mail::send('active_view',['data'=>$data],function($message){    
  4.             $message->to('xxxxxxxx@163.com''Mr.xxx')->subject('欢迎注册我们的网站,请激活您的账号!');  
  5.         });    
  6.         if($flag){    
  7.             // 发送成功处理    
  8.         }else{    
  9.             // 发送失败处理  
  10.         }    
  11.  }    

step3:

active_view.blade.php视图模板:

[html] view plain copy
  1. <!doctype html>  
  2. <html lang="zh-CN">  
  3.   <head>  
  4.     <meta charset="UTF-8">  
  5.     <meta http-equiv="X-UA-Compatible" content="IE=edge">  
  6.   </head>  
  7. <body>  
  8.   <a href="{{URL('active?uid='.$data['uid'].'&activationcode='.$data['activationcode'])}}" target="_blank">点击激活你的账号</a>  
  9. </body>  
  10. </html> 
原创粉丝点击