1.安装驱动函数库
composer require guzzlehttp/guzzle
2.配置
config/mail.php文件,在env里面加载,这里的password是在邮箱配置的时候生成的验证密码。。而不是邮箱密码
MAIL_DRIVER=smtp MAIL_HOST=smtp.163.com MAIL_PORT=465 MAIL_USERNAME=YOUR@EMAIL.COM MAIL_PASSWORD=YOUR-163-PASSWORD MAIL_FROM=YOUR@EMAIL.COM MAIL_NAME=YOUR-NAME3.命令生成,在App/Mail下面生成一个文件ArticleShipped.php
php artisan make:mail ArticleShipped
文件内容如下
namespace App\Mail;
use App\Article;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class ArticleShipped extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
protected $article;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct(Article $article)
{
//
$this->article = $article;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('emails.sendStatus')
->from('1606548133@qq.com')
->with([
'ArticleTile' => $this->article->title,
'ArticleContent' => $this->article->content,
]);
// return $this->view('emails.sendStatus');
}
}
4.创建controlle
php artisan make:controller ArticleController
文本内容如下:
<?php namespace App\Http\Controllers; use App\Article; use App\Mail\ArticleShipped; use App\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Mail; class ArticleController extends Controller { public function send(Request $request) { $name = '尹冲'; $flag = Mail::send('emails.sendStatus',['name'=>$name],function($message){ $to = '1606548133@qq.com'; $message ->to($to)->subject('测试邮件'); });//这里($flag是没有返回值的。这样写不太妥当) if($flag){ echo '发送邮件成功,请查收!'; }else{ echo '发送邮件失败,请重试!'; } } //另一种方法:这个需要穿参数email
public function ships(Request $request) { $article = Article::findOrFail(1); $user=$request->email; Mail::to($user)->send(new ArticleShipped($article)); }
}