自定义Laravel邮件模板的核心在于利用Blade视图引擎和Laravel邮件系统的灵活接口,通过发布默认模板、创建自定义Blade文件或使用Markdown邮件来实现品牌一致、用户体验佳的邮件设计。具体路径包括:运行php artisan vendor:publish --tag=laravel-mail发布默认模板并修改;在resources/views/emails目录下创建自定义Blade视图并在Mailable类中调用;或使用Markdown邮件并通过发布laravel-mail-markdown标签自定义其布局。好处涵盖提升品牌一致性、优化用户体验与互动率、增强不同业务场景的适配性,以及通过组件化提高可维护性。管理时应遵循清晰的目录结构、使用布局继承、处理内联CSS、传递数据至视图,并重视响应式设计、CSS兼容性、图片路径、多客户端测试、避免信息过载。最佳实践包括建立基础布局、优先使用内联CSS、提供纯文本版本、设计明确的CTA、采用语义化HTML、支持本地化与可访问性,保持视图简洁,确保邮件在各类设备和客户端中稳定呈现。<p>
<p>Laravel邮件模板的自定义,核心在于利用Blade视图引擎的强大能力,结合Laravel邮件系统提供的灵活接口。简单来说,无论是修改默认样式,还是从零开始构建完全符合品牌调性的邮件,Laravel都允许你通过发布内置模板、创建全新的Blade文件,或是利用Markdown邮件来轻松实现,其本质就是将邮件内容视为普通的Web页面视图来渲染。
php artisan vendor:publish --tag=laravel-mail
resources/views/vendor/mail
resources/views/emails
resources/views/emails/welcome.blade.php
// app/Mail/WelcomeEmail.php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class WelcomeEmail extends Mailable
{
use Queueable, SerializesModels;
public $user;
public function __construct($user)
{
$this->user = $user;
}
public function build()
{
return $this->view('emails.welcome') // 指定使用你的自定义视图
->with([
'name' => $this->user->name,
'greeting' => '欢迎加入!',
]);
}
}welcome.blade.php
vendor:publish
php artisan vendor:publish --tag=laravel-mail-markdown
resources/views/vendor/mail/html/themes/default.blade.php
resources/views
resources/views
emails
resources/views/emails/welcome.blade.php
resources/views/emails/order_confirmation.blade.php
resources/views/emails/layouts/app.blade.php
->view('emails.welcome')
0
{{ $name }}@if ($user->isAdmin) ... @endif
@foreach ($items as $item) ... @endforeach
@include('emails.partials.header')// resources/views/emails/layouts/app.blade.php
<!DOCTYPE html>
<html>
<head>
<title>My App Email</title>
<style>/* Internal CSS here */</style>
</head>
<body>
<div class="container">
@yield('content')
</div>
</body>
</html>
// resources/views/emails/welcome.blade.php
@extends('emails.layouts.app')
@section('content')
<h1>欢迎, {{ $user->name }}!</h1>
<p>感谢您的注册。</p>
@endsection<style>
->html()
<style>
build
public function build()
{
return $this->markdown('emails.welcome-markdown'); // 假设文件是 resources/views/emails/welcome-markdown.blade.php
}welcome-markdown.blade.php
laravel-mail-markdown
resources/views/vendor/mail/html/themes/default.blade.php
with()
// 通过 with() 方法
return $this->view('emails.welcome')->with(['user' => $this->user]);
// 作为公共属性 (更简洁)
public $user; // 在构造函数中赋值后,在视图中直接使用 $userfloat
position
background-image
border-radius
<table>
resources/views/emails/layouts/app.blade.php
html()
->text('emails.welcome-plain')<h1>
<p>
<a>
trans()
alt
以上就是Laravel邮件模板?邮件视图如何自定义?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号