实现简单的邮件发送功能

来源:互联网 发布:ps3模拟器数据损坏 编辑:程序博客网 时间:2024/05/22 15:27

1 创建路由

Route::get('/',function()){    //查找Id为1的用户    $user=\App\User::find(1);    //to方法后面接的是邮件地址;send()方法接受的是默认实体类,该类可以通过php artisan来创建一个WelcomeToChina.php实体类,这样就可以发送到youjian@126.com这个邮箱里面了    //Mail::to('jie_shou_zhe_mail@126.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' => 'fa_song_zhe_mail@126.com','name' => 'fa_song_zhe_mail'],

6 关于.env文件

MAIL_HOST=mailtrap.io //追踪邮件的发送

打开mailtrap.io网站进行注册。将SMTP Setting下的SMTP中的Username和Password的值拷贝到.env文件中
这里写图片描述
将其中的username和password两项内容

Username:   98e5a5ee33a592Password:   743c72d10a8i47

填到.env文件中(约在第26~30行)

MAIL_DRIVER=smtpMAIL_HOST=smtp.mailtrap.ioMAIL_PORT=2525MAIL_USERNAME=98e5a5ee33a592MAIL_PASSWORD=743c72d10a8i47MAIL_ENCRYPTION=null

配置完成,这时触发路由文件则会向smtp.mailtrap.io邮件中发送邮件。

https://www.laravist.com/