laravel 使用QQ邮箱发送邮件
程序员文章站
2022-03-14 18:43:36
...
laravel version: 5.4.*
准备
使用QQ邮箱必须打开smtp/pop3等几个服务,开启服务可能需要验证
开启服务后需要生成验证码,等会有用
配置
配置文件:
/config/mail.php
找到from
则一项,其他默认就好
'from' => [
// 'aaa@qq.com' 此处填写你发送邮件的账号
'address' => env('MAIL_FROM_ADDRESS', 'aaa@qq.com'),
'name' => env('MAIL_FROM_NAME', 'laravel测试学习'),
],
配置 .env
文件
MAIL_DRIVER=smtp
MAIL_HOST=smtp.qq.com
MAIL_PORT=465
aaa@qq.com
MAIL_PASSWORD=gzwwibkmqakdjead
MAIL_ENCRYPTION=SSL
-
注:这里配置的
MAIL_USERNAME
是你的邮箱地址,MAIL_PASSWORD
不是你的邮箱密码而是之前生成的随机验证码
直接复制我的没有用,必须是自己真是的账号真实生成的
发送
发送纯文本格式邮件
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;
class TestController extends Controller{
public function sendEmail () {
Mail::raw("这是测试的内容", function ($message){
// * 如果你已经设置过, mail.php中的from参数项,可以不用使用这个方法,直接发送
// $message->from("aaa@qq.com", "laravel学习测试");
$message->subject("测试的邮件主题");
// 指定发送到哪个邮箱账号
$message->to("aaa@qq.com");
});
// 判断邮件是否发送失败
if(count(Mail::failures())) {
return '邮件发送失败';
}
}
}
发送html格式邮件
- 在发送HTML格式的邮件之前,你需要先设置个发送的模板
- 在
resource/view
新建一个blade
模板文件,内容可以根据个人喜好去设置
<h1>hello {{$name}}, 这是我在学习laravel时给你发送的邮件!! ^_^</h1>
- 控制器中代码
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Mail;
class TestController extends Controller{
public function sendEmail () {
/**
* email: 指定模板,模板位于 resources/views/email.blade.php
* ['name'=>'Alex']: 指定模板中的参数
*/
Mail::send('email',['name'=>'Alex'], function($email) {
$email->subject("laravel学习与测试");
$email->to("aaa@qq.com");
});
}
}
在发送的过程中不建议频繁发送到一个账号,否则会被腾讯自动标记为垃圾邮件就会报错, 如果需要测试,可以将这个发送邮件的账号设置到白名单中..
其实laravel不仅仅能够发送html格式的还能发送
markdown
格式的邮件,这个如果有兴趣就自己去学习吧 ^_^