163邮箱获取邮箱授权码:
配置config/mail.php
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'xxx@163.com'),
'name' => env('MAIL_FROM_NAME', '前途有限公司'),
],
配置.env
# 驱动名称
MAIL_DRIVER=smtp
# 服务地址,163的为smtp.163.com
MAIL_HOST=smtp.163.com
# 服务端口,163的默认25
MAIL_PORT=25
# 发件人
MAIL_USERNAME=xxx@163.com
# 发件地址
MAIL_FROM_ADDRESS=xxx@163.com
# 发件邮箱授权码(前提准备的“客户端授权密码”)
MAIL_PASSWORD=xxx
# 发件人姓名,如果包含特殊字符可以用双引号括起来
MAIL_FROM_NAME=前途有限公司
# 加密/协议,这里 null即使用 mail.php里面的默认配置 tls
MAIL_ENCRYPTION=null
创建发送邮件控制器:
php artisan make:controller MailController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
class MailController extends Controller
{
// 发送邮件
public function send(Request $request) {
// 收件人邮箱
$toEmail = $request->input('toEmail');
// 邮件主题
$theme = $request->input('theme');
// 邮件正文
$mainText = $request->input('mainText');
Mail::send('emails', ['mainText' => $mainText], function($message) use ($toEmail, $theme) {
$message->to($toEmail)->subject($theme);
});
// 获取发送失败的邮箱列表
$failures = Mail::failures();
if(count($failures) > 0) {
// 邮件发送失败
return '邮件发送失败:' . implode(', ', $failures);
} else {
// 邮件发送成功
return '邮件发送成功';
}
}
}
创建web.php路由:
// 发送邮件
Route::any('mail/send','MailController@send');
创建自定义正文数据视图,在emails写的内容都会显示到邮件正文中
$ php artisan make:view emails
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<p>{{$mainText}}</p>
</body>
</html>
效果图:使用Postman发送请求,163邮箱发送到QQ邮箱