1.
php artisan make:controller MailController
2.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;
use Illuminate\Mail\Mailable;
use App\Services\MailService;
class MailController extends Controller {
public function __construct(MailService $mail){
$this->mail = $mail;
}
public function send(Request $request)
{
$this->mail->send($request->all());
}
public function sendFile(Request $request)
{
$this->mail->sendFile($request->all());
}
}
3.创建服务层,将邮件逻辑写到里面app/Services/MailService.php
<?php
namespace App\Services;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Request;
use Mail;
use Illuminate\Mail\Mailable;
class MailService
{
public function send($data) {
$to_email = $data['to_mail'];
$title = $data['title'];
Mail::send('emails.email',['title'=>$title,'to_email'=>$to_email],function($message)use($to_email){
$to = $to_email; $message ->to($to)->subject('邮件测试');
});
dd(Mail::failures());
}
public function sendFile($data){
Mail::send('emails.email',['title'=>$data['title'],'to_email'=>$data['to_email']],function($message)use($data){
$message->to($data['to_email'])->subject('邮件测试');
$attachment = ($data['path']);
$message->attach($attachment,['as'=>'中文文档.xls']);
});
}
}
4.创建 view/emails/email.blade.php
<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>lwl</title>
</head>
<body>
<div style="width:100%;max-width: 640px;margin:40px auto; background: #f5f5f8;border-radius: 5px 5px 0 0;padding-bottom: 20px;">
<div style="border-radius:5px;width:100%;height:50px;background: #0C80FF; display: flex; flex-direction: row; align-items:center;padding:0 20px;box-sizing: border-box">
<div style="font-size: 18px;color:#fff;">《lwl》</div>
<div style="width:2px;height:24px;margin:0 20px;background: #fff;"></div>
<div style="font-size:18px;color:#fff;">{{$title}}</div>
</div>
<div style="margin:0 10px;">
<div style="font-size: 20px;font-weight: bold;margin-top:40px;">
<span>Hi!</span>
<span>{{$to_email}}</span>
</div>
<div style="margin-top:10px;color:#000;font-size: 18px;">附件列表</div>
</div>
</div>
</body>
</html>
5.配置.env
PUSHER_APP_SECRET=IL_DRIVER=smtp
MAIL_HOST=smtp.exmail.qq.com
MAIL_PORT=465
MAIL_USERNAME=账号
MAIL_PASSWORD=密码
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=地址
MAIL_FROM_USERNAME=用户名
MAIL_FROM_NAME=用户名
6.
localhost/api/mail/send?to_mail=123@qq.com"&title=hello