laravel邮箱服务使用

composer拉取组件

进入laravel项目根目录

composer require guzzlehttp/guzzle": "~5.3|~6.0

.env

 MAIL_DRIVER=smtp//开启163的smtp服务,获取到随机密码
 MAIL_HOST=smtp.163.com
 MAIL_PORT=25
 [email protected]//发送者邮箱
 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' =>'[email protected]', 'name' => 'Jacklin']

Mail函数解析

Mail::send('email', $data, function ($message) use ($data) {
     $message->to('[email protected]', $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('[email protected]', '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

你可能感兴趣的:(laravel邮箱服务使用)