1.设置发送方,即邮件服务器,可以使用163邮箱,设置smtp,开启后获取授权码
2.在env文件配置
MAIL_DRIVER=smtp
MAIL_HOST=smtp.163.com //邮箱服务器
MAIL_PORT=25 //25端口
MAIL_USERNAME=130****@163.com //你登录163的邮箱账号
MAIL_PASSWORD= ***** //开启smtp的授权码
MAIL_ENCRYPTION=tls //邮箱加密方式,25端口的为tls,其他的为ssl
3.在config下的mail文件中设置
'from' => [
'address' => env('MAIL_FROM_ADDRESS', '你登录163的邮箱账号'),
'name' => env('MAIL_FROM_NAME', '发件人名称'),
],
4.创建控制器,然后调用mail类进行发送
这里以生成pdf和发送pdf到邮箱为例
$data = ['name'=>'li','age'=>'12'];
$pdf = PDF::loadView('pdfTemplate.testPage',compact('data'))->setPaper('a4'); //pdfTemplate.testPage为views目录下的视图文件,compact('data')是传到pdf中的数据,
setPaper('a4')设置pdf的大小
//将pdf发送到1093684305@qq.com的邮箱
Mail::to('1093684305@qq.com')->send(new ReportPage($pdf,$user));
5.创建mail类
php artisan make:mail Test
class ReportPage extends Mailable { use Queueable, SerializesModels; // protected $data; protected $pdf; //传递过来的pdf原数据 protected $data; //pdf的变量数据 /** * Create a new message instance. * * @return void */ public function __construct($pdf,$data) { $this->data = $data; $this->pdf = $pdf; } /** * Build the message. * * @return $this */ public function build() { //发送邮件视图testPage时,data数据也要传到视图中去,output()是pdf原数据,testPage.pdf发送到邮箱的pdf文件名字 return $this->view('pdfTemplate.testPage',['data'=>$this->data]) ->subject('testPage') //邮件主题,即收到邮件时邮件的名字 ->attachData($this->pdf->output(), 'testPage.pdf', [ 'mime' => 'application/pdf' ]); } }
这样就可以发送邮件了,如果有报错的地方就自己排一下错,这里只是说一下发送邮箱的一些流程