Laravel验证电子邮件预览,呈现验证电子邮件

时间:2020-07-18 18:53:56

标签: php laravel

对于laravel项目,我想查看验证电子邮件的外观。 我确实运行过php artisan vendor:publish --tag=laravel-mail,并在文档中找到了

有时您可能希望捕获可邮寄邮件的HTML内容 没有发送。为此,您可以调用render方法 的邮件。此方法将返回已评估的内容 可作为字符串邮寄:

$invoice = App\Invoice::find(1);

return (new App\Mail\InvoicePaid($invoice))->render();

是否可以对确认电子邮件(电子邮件)执行类似的操作?我在项目中搜寻Mailable,但没有结果。这是查看电子邮件而不发送电子邮件的另一种方法吗?

2 个答案:

答案 0 :(得分:3)

选项1-在浏览器中预览

添加一条新的路由,最好是在测试设置中,如下所示:

Route::get( '/verify-test', function () {
    // Get a user for demo purposes
    $user = App\User::find(1);
    return (new Illuminate\Auth\Notifications\VerifyEmail())->toMail($user);
}

在我对laravel 7的测试中,这就足够了。我不必发布任何通知。它在浏览器中呈现得很好!当然,如果您还想更改通知的内容,则最好这样做:

php artisan vendor:publish --tag=laravel-notifications

通知的内容在文件resources/views/vendor/notifications

Laravel Notification Docs

选项2-捕获邮件

您始终可以做的是将mailtrap.io帐户设置为smtp服务器并在其中查看邮件,或者按照docs中的说明使用“通用收件人”:

// config/mail.php
'to' => [
    'address' => 'example@example.com',
    'name' => 'Example'
],

答案 1 :(得分:1)

说实话?是的,您可以添加路线并仅使它们在本地可访问,但这是麻烦的原因。

Laravel已经建立了一个名为Laravel Telescope的工具。只需使用composer进行安装,添加--dev仅用于开发即可完成。将您的邮件驱动程序设置为log并进行检查,而无需研究路由或其他方法。

如果您希望始终进行邮件注册而无需测试,可以创建一个工厂来生成和模拟电子邮件,并使用Tinker或更佳的Tinkerwell来加快开发过程。