Laravel为我们提供了很便捷的邮件服务,只需要简单的配置就能使用。
–>另一篇Laravel队列发送邮件
它的配置文件在config/mail.php,下面我们来看看它的配置文件
这里的 driver 指的是使用的驱动,默认使用的是smtp
‘driver’ => env(‘MAIL_DRIVER’, ‘smtp’),
发送邮件的主机地址
‘host’ => env(‘MAIL_HOST’, ‘smtp.mailgun.org’),
使用端口
‘port’ => env(‘MAIL_PORT’, 587),
发件人的邮箱地址,发送人名称
‘from’ => [‘address’ => null, ‘name’ => null],
发送邮件协议
‘encryption’ => env(‘MAIL_ENCRYPTION’, ‘tls’),
这里是smtp服务器的账号:
QQ邮箱是 smtp.qq.com
网易邮箱是 smtp.126.com,smtp.163.com, smtp.yeah.net
新浪的是 smtp.sina.com
‘username’ => env(‘MAIL_USERNAME’),
服务器密码
‘password’ => env(‘MAIL_PASSWORD’),
这些配置项可以直接在项目根目录下的 .env文件里直接设置MAIL_DRIVER=smtp MAIL_HOST=smtp.163.com MAIL_PORT=587 MAIL_USERNAME=laravel@163.com MAIL_PASSWORD=laravel MAIL_ENCRYPTION=ssl
现在我们配置完之后就可以使用啦,下面在路由中添加一条路由,指向控制器的mail方法Route::get(‘admin/mail’,’Admin\LoginController@mail’);
接下来,我们在控制器里直接使用Mail::raw发送邮件 public function mail(){ Mail::raw(‘这里填写邮件的内容’,function ($message){ // 发件人(你自己的邮箱和名称) $message->from(‘Laravel@163.com’, ‘laravel’); // 收件人的邮箱地址 $message->to(‘xxxx@qq.com’); // 邮件主题 $message->subject(‘测试’); }); }
上面的是Mail::raw方法是以文字发送邮件,Laravel还为我们提供了以html模板发送,使用Mail::send public function mail(){ // 第一个参数填写模板的路径,第二个参数填写传到模板的变量 Mail::send(‘mail.mail’,[‘name’ => ‘laravel’],function ($message) { // 发件人(你自己的邮箱和名称) $message->from(‘yn3259@163.com’, ‘laravel’); // 收件人的邮箱地址 $message->to(‘xxxx@qq.com’); // 邮件主题 $message->subject(‘测试’); }); }
然后模板里我们直接写接收的变量名,比如在上面的地址mail.blade.php模板里写入{{$name}}<!doctype html> <html lang=”en”> <head> <meta charset=”UTF-8″> <meta name=”viewport” content=”width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0″> <meta http-equiv=”X-UA-Compatible” content=”ie=edge”> <title>Document</title> </head> <body> <h3>{{ $name }}</h3> </body> </html>
这样以模板发送邮件就完成啦。