在Laravel中如何发送邮件? 一、在环境设置文件.env里先设置好发送参数 MAIL_DRIVER=smtp MAIL_HOST=server_name #服务器名 MAIL_PORT=587 #邮箱发送端口号 MAIL_USERNAME=mail@example.com #服务器上申请的邮箱 MAIL_PASSWORD=mail_password #邮箱的密码 MAIL_ENCRYPTION= MAIL_FROM_ADDRESS=mail@example.com #显示来自邮箱名 MAIL_FROM_NAME=yourname #你的显示名称 二、编辑视图文件mail.blade.php 内容行列如下: {{$name}} {$username}}'>这里是发送的正式文件内容... 点击网页 www.example.com/{{$username}}进行激活... 三、在控制器里编辑代码: $username = '发送内容一部分'; $name = '显示的对方称谓等内容'; $subject = '邮件的主题'; $res = ['email'=>$mailto,'name'=>$name,'username'=>$username,'subject'=>$subject]; Mail::send('home.mail',$res,function($message)use($res){ $to=‘qq@qq.com’; //对方的邮箱号(可多邮箱号,中间分号分开) $sub=$res['subject']; //邮件主题主题 $message ->to($to)->subject($sub); }); if(count(Mail::failures()) < 1){ echo '发送邮件成功,请查收!'; }else{ echo '发送邮件失败,请重试!'; } Mail::send();需要传三个参数,第一个为引用的模板,第二个为给模板传递的变量(邮箱发送的文本内容),第三个为一个闭包,参数绑定Mail类的一个实例。 四、邮件发送: 1. 发送纯文本邮件 Mail::raw('你好,我是PHP程序!', function ($message) { $to = '123456789@qq.com'; $message ->to($to)->subject('纯文本信息邮件测试'); }); 2.邮件中发送附件 发生图片: {{$name}},这是一封测试邮件 public function send(){ $image = Storage::get('images/obama.jpg'); //本地文件 //$image = 'http://www.baidu.com/sousuo/pic/sdaadar24545ssqq22.jpg';//网上图片 Mail::send('emails.test',['image'=>$image],function($message){ $to = 'qq@qq.com'; $message->to($to)->subject('图片测试'); }); if(count(Mail::failures()) < 1){ echo '发送邮件成功,请查收!'; }else{ echo '发送邮件失败,请重试!'; } } 3. 邮件附件 public function sendFile(){ $name = '我发的第一份邮件'; Mail::send('emails.test',['name'=>$name],function($message){ $to = qq@qq.com'; $message->to($to)->subject('邮件测试'); $attachment = storage_path('xls/files/test.xls'); // 在邮件中上传附件 $message->attach($attachment,['as'=>'中文文档.xls']); }); } |