laravel 发送邮件配置
摘要:本文讲述 Laravel 如何配置 QQ 邮箱,进行邮件发送 。
1. 开启 QQ 邮箱smtp,获取授权码:
登录 QQ 邮箱 -> 设置 -> 账户 -> 开启 POP3/SMTP 服务
2. laravel邮件配置
配置 .env 文件
# 邮件发送驱动 邮箱所在主机 MAIL_DRIVER=smtp MAIL_HOST=smtp.qq.com # 邮箱发送服务端口 ssl加密安全传输 MAIL_PORT=465 MAIL_ENCRYPTION=ssl # 发件人邮箱 MAIL_USERNAME=121****778@qq.com MAIL_FROM_ADDRESS=121****778@qq.com # 授权码 MAIL_PASSWORD=dxur********jafh MAIL_FROM_NAME=
配置完成。
3. 添加控制器方法,发送邮件(仅描述主要部分,自己配路由,进行完善)
namespace App\Http\Controllers\Home;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Mail;
class MailController extends Controller
发送纯文本内容 + 附件
Mail::raw('Hello, I`m QTX, 文本内容', function($message){ $to = '***@163.com'; $message->to($to)->subject('纯文本信息邮件测试,标题'); $attachment = public_path().'/storage/seller/1.png'; if (!file_exists($attachment)) { die('文件不存在'); } // 防止中文乱码 $message->attach($attachment, ['as' => '=?UTF-8?B?'.base64_encode('二维码图片').'?=.png']); }); var_dump(Mail::failures()); // 打印失败信息,进行判断处理
发送模板内容 + 附件
Mail::send('email.test', ['name' => 'QTX'], function($message) { $to = '***@163.com'; $message->to($to)->subject('模板发送邮件测试,标题'); $attachment = public_path().'/storage/seller/1.png'; if (!file_exists($attachment)) { die('文件不存在'); } // 防止中文乱码 $message->attach($attachment, ['as' => '=?UTF-8?B?'.base64_encode('二维码图片').'?=.png']); }); var_dump(Mail::failures()); // 打印失败信息,进行判断处理
在 view/email/test.blade.php 模板文件中,进行自定义处理
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> h1 { font-size: 16px; color: #fdd; } p { padding: 0 20px; } </style> </head> <body> <h1>你好:</h1> <p>{{$name}}</p> </body> </html>
将发送邮箱变量化
$to = $_params['email']; Mail::send('email.test', ['name' => 'QTX'], function($message) use($to) { // 同上 });
发送多人邮件
$_params['email'] = '***@163.com'; $emails = ['121***778@qq.com', $_params['email']]; foreach ($emails as $value) { $to = $value; Mail::send('email.test', ['name' => 'QTX'], function($message) use($to, $subject = $_params['subject']) { $message->to($to)->subject($subject); $attachment = public_path().'/storage/seller/1.png'; if (!file_exists($attachment)) { die('文件不存在'); } // 防止中文乱码 $message->attach($attachment, ['as' => '=?UTF-8?B?'.base64_encode('二维码图片').'?=.png']); }); }
- 欢迎各大神点评 -