Laravel 发送邮箱

  • 通过本地环境模拟发送邮件功能
1.修改 .env 文件
MAIL_DRIVER=log
2.邮件路由
Route::namespace('Learn')->group(function () {
    
    Route::get('sendEmail', 'MailController@sendEmail')->name('send.email');
    Route::post('confirmEmail/{id}', 'MailController@confirmEmail')->name('confirm.email');
    
});
3.通常情况我们要定制邮件的格式,所以可以新建一个blade模版来定制邮件内容,内容如下
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>确认链接</title>
</head>
<body>
    <h1>感谢您注册此网站</h1>
    <p>
        请点击下面链接完成步骤
        <a href="{{route('confirm.email',$id)}}">
            {{route('confirm.email',$id)}}
        </a>
    </p>
    <p>
        如果这不是您本人操作请忽略此邮件!
    </p>
</body>
</html>
4.对应控制器的方法如下
public function sendEmail()
{
        $view = 'email.email';
        $id = 99;
        $data = compact('id',$id);
        $from = '[email protected]'; // 发送者
        $name = 'roy';
        $to = '[email protected]'; // 接受者
        $subject = '感谢注册此网站!请您确认邮箱.';

        \Mail::send($view,$data,function ($message) use ($from,$name,$to,$subject){
            $message->from($from,$name)->to($to)->subject($subject);
        });
}

public function confirmEmail($id)
{
        dd($id);
}
5. 执行发送路由,在 storage/logs/laravel.log 中有如下
[2018-07-17 10:14:51] local.DEBUG: Message-ID: <[email protected]>
Date: Tue, 17 Jul 2018 10:14:51 +0000
Subject: =?utf-8?Q?=E6=84=9F=E8=B0=A2=E6=B3=A8=E5=86=8C?=
 =?utf-8?Q?=E6=AD=A4=E7=BD=91=E7=AB=99=EF=BC=81?=
 =?utf-8?Q?=E8=AF=B7=E6=82=A8=E7=A1=AE=E8=AE=A4=E9=82=AE=E7=AE=B1=2E?=
From: roy <[email protected]>
To: [email protected]
MIME-Version: 1.0
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>确认链接</title>
</head>
<body>
    <h1>感谢您注册此网站</h1>
    <p>
        请点击下面链接完成步骤
        <a href="http://learn.laravel.com/confirmEmail/99">
            http://learn.laravel.com/confirmEmail/99
        </a>
    </p>
    <p>
        如果这不是您本人操作请忽略此邮件!
    </p>
</body>
</html>  

猜你喜欢

转载自blog.csdn.net/weixin_34392435/article/details/87227087