laravel邮件发送
使用邮件发送类Mail
- 文本 静态方法 raw()
- 富文本 静态方法 send()
注:使用邮件发送必须有邮件账号,需要开启smtp协议,现在主流服务器都支持,smtp默认端口号25,默认是关闭的,需要自行打开
以QQ邮箱为例
qq邮箱登录网址:https://mail.qq.com/
1、配置QQ邮箱
2、得到客户端配置
帮助地址:https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=371
看smtp主机和端口号
3、配置larave邮件发送(在.env
中,或者config/mail.php
)
发送者名称:接收方看到的发件人名称
4、将上面配置完成后就可以愉快的发送邮件了
为了简便的测试发送邮件,我就直接写在了路由之中,根据实际去编写就好了
php代码
//文本文件发送
Route::get('mail',function (){
\Mail::raw('测试一下发送邮件',function(\Illuminate\Mail\Message $message){
//获取回调方法中的参数
//dump(func_get_args());
//发给谁
$message->to('接收者邮箱账号');
//主题
$message->subject('测试邮件');
});
});
//富文本发送
Route::get('mail',function (){
/**
* 参数一:模板文件位置
* 参数二:传给视图文件数据
*/
\Mail::send('mail.index',['data'=>'这是测试数据'],function (\Illuminate\Mail\Message $message){
//发给谁
$message->to('接收者邮箱账号');
/*
局部设置发件人名称
参数1:发件人邮箱账号,与.env中发件人邮箱一致
参数2:接收人看到的发送人名称
*/
$message->from('发件人邮箱账号','xxx');
//主题
$message->subject('测试邮件');
});
});
blade模板页面
<!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>邮件模板</title>
</head>
<body>
<h3>{{$data}}</h3>
<img src="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=12680769,758549795&fm=26&gp=0.jpg" alt="">
</body>
</html>