实现简单的邮件发送功能
程序员文章站
2022-04-08 21:24:20
...
1 创建路由
Route::get('/',function()){
//查找Id为1的用户
$user=\App\User::find(1);
//to方法后面接的是邮件地址;send()方法接受的是默认实体类,该类可以通过php artisan来创建一个WelcomeToChina.php实体类,这样就可以发送到aaa@qq.com这个邮箱里面了
//Mail::to('aaa@qq.com')->send(new \App\Mail\WelcomeToChina());
//将写死的邮件改成用户为1的邮箱,同时$user传参,这样就可以直接让Mail\WelcameToChina中的__construct构造进行参数调用
Mail::to($user->email)->send(new \App\Mail\WelcomeToChina($user));
}
2 创建类文件
php artisan make:mail WelcomeToChina
这时再app文件夹下会多出一个Mail文件夹;该文件夹下有一个WelcomeToChina.php文件
3 修改WelcomeToChina.php文件
class WelcomeToChina extends Mailable
{
use Queueable, SerializesModels;
//该属性一定要定义成public,这样能够被读取到
public $user;
public function __construct(User $user)
{
$this->user=$user;
}
public function build()
{
return $this->view('email.welcome')
}
}
4 创建视图模板
在resources/views/文件夹下创建email文件夹,并在该文件夹下创建welcome.blade.php文件
//随便写一段代码用于测试,在类文件中实现了$this->user=$user的赋值,就可以在视图模板中直接调用了$user->name了。
<h1> Welcome To China:{{$user->name}} </h1>
<span> Dear foreign friends, welcome to China, welcome to beijing </span>
5 配置
配置config/mail.php文件
'from' => ['address' => 'aaa@qq.com','name' => 'fa_song_zhe_mail'],
6 关于.env文件
MAIL_HOST=mailtrap.io //追踪邮件的发送
打开mailtrap.io网站进行注册。将SMTP Setting下的SMTP中的Username和Password的值拷贝到.env文件中
将其中的username和password两项内容
Username: 98e5a5ee33a592
Password: 743c72d10a8i47
填到.env文件中(约在第26~30行)
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=98e5a5ee33a592
MAIL_PASSWORD=743c72d10a8i47
MAIL_ENCRYPTION=null
配置完成,这时触发路由文件则会向smtp.mailtrap.io邮件中发送邮件。
下一篇: 去楼下帮老公买烟