laravel version: 5.4.*
准备
使用QQ邮箱必须打开smtp/pop3等几个服务,开启服务可能需要验证
开启服务后需要生成验证码,等会有用
配置
配置文件:
/config/mail.php
找到from
则一项,其他默认就好
'from' => [ // 'your_account@qq.com' 此处填写你发送邮件的账号 'address' => env('MAIL_FROM_ADDRESS', 'your_account@qq.com'), 'name' => env('MAIL_FROM_NAME', 'laravel测试学习'),],
配置 .env
文件
MAIL_DRIVER=smtpMAIL_HOST=smtp.qq.comMAIL_PORT=465MAIL_USERNAME=your_account@qq.comMAIL_PASSWORD=gzwwibkmqakdjeadMAIL_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("1182468610@qq.com", "laravel学习测试"); $message->subject("测试的邮件主题"); // 指定发送到哪个邮箱账号 $message->to("3233824562@qq.com"); }); // 判断邮件是否发送失败 if(count(Mail::failures())) { return '邮件发送失败'; } }}
发送html格式邮件
- 在发送HTML格式的邮件之前,你需要先设置个发送的模板
- 在
resource/view
新建一个blade
模板文件,内容可以根据个人喜好去设置
hello { {$name}}, 这是我在学习laravel时给你发送的邮件!! ^_^
- 控制器中代码
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("3233824562@qq.com"); }); }}
在发送的过程中不建议频繁发送到一个账号,否则会被腾讯自动标记为垃圾邮件就会报错, 如果需要测试,可以将这个发送邮件的账号设置到白名单中..
其实laravel不仅仅能够发送html格式的还能发送
markdown
格式的邮件,这个如果有兴趣就自己去学习吧 ^_^