composer拉取组件
进入laravel项目根目录
composer require guzzlehttp/guzzle": "~5.3|~6.0
.env
MAIL_DRIVER=smtp//开启163的smtp服务,获取到随机密码
MAIL_HOST=smtp.163.com
MAIL_PORT=25
MAIL_USERNAME=18106503226@163.com//发送者邮箱
MAIL_PASSWORD=********//密码,随机生成的
MAIL_ENCRYPTION=null
参数解释
1.MAIL_DRIVER
laravel提供了四种种驱动,Mailgun驱动,Mandrill驱动,SES驱动,Smtp驱动,这几种都依赖我们第一步安装的guzzle,具体可以参考laravel手册。本次选择的是smtp驱动。所以mail_derver=smtp
2.MAIL_HOST
邮件传输服务器,一般免费的邮箱,如下列出的,他们的SMTP服务器就是在域名前加上smtp就行了.
smtp.163.com
smtp.21cn.com
smtp.sina.com.cn
smtp.sohu.com
smtp.126.com
3.MAIL_USERNAME PASSWORD
当你在邮箱后台设置了开通smtp,就回让你设置一个专门供第三方使用的密码,这里的密码就是这个密码,具体这是可以百度查找。
163邮箱开启smtp教程
config/mail.php
//设置驱动
'driver' => env('MAIL_DRIVER', 'smtp')
// 发送者 也可以后面通过Mail函数设置
'from' => ['address' =>'18106503226@163.com', 'name' => 'Jacklin']
Mail函数解析
Mail::send('email', $data, function ($message) use ($data) {
$message->to('957534377@qq.com', $data['name'])->subject('你好啊');
});
1.function() use (){}
这是php闭包函数的结构,可以使用变量作为参数,在这里没有什么好说的,但是闭包函数的用法的机制类似js的机制,具体百度。
2.参数分析
Mail::send(1,2,3)
第一个参数是一个blade模板,里面可以写具体短信内容,并作样式处理
第二个参数是一个数组,传入blade模板中
第三个参数是闭包函数,使用这个闭包可以指定消息的其他属性,例如抄送、群发,等等
简单发送可以使用to方法,to方法里定义了收件人的邮箱和收件人称为,可以为空。
Route::get('test',function(){
\Mail::send('email', [], function ($message) {
$message->to('361525737@qq.com', '123')->subject('主题');
});
});
具体方法如下:
$message->from($address, $name = null);
$message->sender($address, $name = null);
$message->to($address, $name = null);
$message->cc($address, $name = null);
$message->bcc($address, $name = null);
$message->replyTo($address, $name = null);
$message->subject($subject);
$message->priority($level);
$message->attach($pathToFile, array $options = []);
// 从$data字符串追加文件...
$message->attachData($data, $name, array $options = []);
// 获取底层SwiftMailer消息实例...
$message->getSwiftMessage();
qq邮箱smtp
rkjclatrixkpbjgc
phhbkmhzattwcagd
powpjvvxhwowbhjd