首页 > 代码库 > laravel框架总结(十五) -- 发送邮件

laravel框架总结(十五) -- 发送邮件

  laravel自带SwiftMailer库,集成了多种邮件API,支持多种邮件驱动方式,包括smtp、Mailgun、Maildrill、Amazon SES、mail和sendmail,Mailgun和Amazon SES都是收费的,Maildrill目前不支持中国区用户,这三个都是第三方邮件服务。mail驱动使用PHP提供的mail函数发送,sendmail驱动通过Sendmail/Postfix(Linux)提供的命令发送邮件,smtp驱动通过支持ESMTP的SMTP发送邮件。就目前状况来看,使用smtp是最明智的选择,mail不安全,sendmail需要安装配置Sendmail/Postfix,其他要么付费要么不能用。
 
实例:
1.邮件所在的配置文件在app/mail.php中
 
  ‘driver‘ => env(‘MAIL_DRIVER‘, ‘smtp‘),
  ‘host‘ => env(‘MAIL_HOST‘, ‘smtp.163.com‘),
  ‘port‘ => env(‘MAIL_PORT‘, 25),
  ‘from‘ => [‘address‘ => ‘yourname@163.com‘,
  ‘name‘ => ‘yourname‘],
  ‘encryption‘ => env(‘MAIL_ENCRYPTION‘, ‘tls‘),
  ‘username‘ => env(‘yourname@163.com‘),
  ‘password‘ => env(‘password‘),
  ‘sendmail‘ => ‘/usr/sbin/sendmail -bs‘,
 
注意 : .env文件中的配置会覆盖掉这里的配置,有冲突的二者取其一,配置对即可
2.添加路由
  Route::get(‘/sendMail‘, ‘MailController@sendMail‘); 
 
3.控制器需要包括以下内容
  use Mail;
 
  class MailController{
    public function sendMail(){
      $webRecordItem= [‘email‘=>‘your email address‘, ‘subject‘=>‘测试邮件系统‘];
        Mail::raw(‘这是一封测试邮件‘, function ($message) use ($webRecordItem) {
        $message->to($webRecordItem[‘email‘])->subject($webRecordItem[‘subject‘]);
      });
    }
  }
 
注意 : use Mail不能丢 ,使用use($webRecordItem)传递参数进入闭包函数
 
其它内容:
  1.有些邮箱需要开启POP3和SMTP服务,网易邮箱会让你设置一个安全码,密码处填写这个就可以
  2.driver用于配置默认的邮件发送驱动,
  3.host是邮箱所在主机,比如我们使用163邮箱,对应值是smtp.163.com,使用QQ邮箱的话,对应值是smtp.qq.com。
  4.port用于配置邮箱发送服务端口号,比如一般默认值是25,但如果设置SMTP使用SSL加密,该值为465。
 
文章主要整理自以下地址,更多配置请参照
http://www.jianshu.com/p/8ccb2820df23
http://d.laravel-china.org/docs/5.2/mail

laravel框架总结(十五) -- 发送邮件