参考:https://learnku.com/docs/laravel/5.6/mail/1392
配置.env
文件
如下配置:
MAIL_DRIVER=smtp
MAIL_HOST=邮件服务器地址 如:smtp.misiyu.cn
MAIL_PORT=端口,如:25
MAIL_USERNAME=用户名,如:smtp@misiyu.cn
MAIL_PASSWORD=密码
MAIL_ENCRYPTION=null
详细解释:
必须一提的是,在新版Laravel中,.env文件的配置项不够,比如没有MAIL_FROM_ADDRESS
会出现如下错误:
所以必须打开config/mail.php
配置,from
这里我是直接在.env
文件添加了:
php artisan make:controller Common/MailController
Route::get('/testMail', 'Common\MailController@send');
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Mail;
class MailController extends Controller
{
//
public function send()
{
$name = '我发的第一份邮件';
// Mail::send()的返回值为空,所以可以其他方法进行判断
Mail::send('emails.test',['name'=>$name],function($message){
$to = '123456789@qq.com'; $message ->to($to)->subject('邮件测试');
});
// 返回的一个错误数组,利用此可以判断是否发送成功
dd(Mail::failures());
}
}
Mail::send();需要传三个参数,第一个为引用的模板,第二个为给模板传递的变量(邮箱发送的文本内容),第三个为一个闭包,参数绑定Mail类的一个实例。
在resources/views/emails
下创建一个模板文件(比如:CommentMail)。
{{$name}} 你好,这是一封测试邮件。
好了,访问http://localhost/testMail
打印出空白数组便是发送成功了[]
这里我是到了垃圾箱,但是发送成功了。