对于laravel项目,我想查看验证电子邮件的外观。
我确实运行过php artisan vendor:publish --tag=laravel-mail
,并在文档中找到了
有时您可能希望捕获可邮寄邮件的HTML内容 没有发送。为此,您可以调用render方法 的邮件。此方法将返回已评估的内容 可作为字符串邮寄:
$invoice = App\Invoice::find(1);
return (new App\Mail\InvoicePaid($invoice))->render();
是否可以对确认电子邮件(电子邮件)执行类似的操作?我在项目中搜寻Mailable,但没有结果。这是查看电子邮件而不发送电子邮件的另一种方法吗?
答案 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
选项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来加快开发过程。