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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘ => ‘[email protected]‘,
  ‘name‘ => ‘yourname‘],
  ‘encryption‘ => env(‘MAIL_ENCRYPTION‘, ‘tls‘),
  ‘username‘ => env(‘[email protected]‘),
  ‘password‘ => env(‘password‘),
  ‘sendmail‘ => ‘/usr/sbin/sendmail -bs‘,
 
注意 : .env文件中的配置会覆盖掉这里的配置,有冲突的二者取其一,配置对即可
2.添加路由
  Route::get(‘/sendMail‘, ‘[email protected]‘); 
 
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。
 
文章主要整理自以下地址,更多配置请参照

以上是关于laravel框架总结(十五) -- 发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 中手动重新发送电子邮件验证?

API接口自动化测试框架搭建(二十五)-框架主入口main.py设计&sendmail邮件服务调用和生成

使用Laravel框架发送邮件

Laravel框架中使用邮件发送功能

Laravel 5 重置密码通知不会发送

laravel 框架发送邮件