Laravel 5.5 在 Mailables 中添加对电子邮件主题的支持
发布日期 作者 Joe Dixon
在 Laravel 5.4 中,我们引入了 Markdown 电子邮件,它允许我们使用 Markdown 编写电子邮件,同时利用 Blade 的 组件和槽位。
Laravel 附带了一系列预定义的组件,用于标题、页脚、按钮和表格等元素,这些元素可以轻松地添加到您的电子邮件模板中。
@component('mail::button', ['url' => $actionUrl, 'color' => $color]) {{ $actionText }}@endcomponent
默认情况下,Markdown 电子邮件使用默认主题发送,这意味着您可以发送外观精美的电子邮件,而不必担心自己进行样式设计,可以放心地知道它们在所有电子邮件客户端中都能正常工作。
但是,如果您需要根据您的品牌对电子邮件进行样式设计呢?在 Laravel 5.4 中,您可以通过创建自己的主题来实现这一点。
首先,在以下路径生成一个包含自定义样式的 CSS 文件
// my-theme.css is the name of your themeresources/views/vendor/mail/html/themes/my-theme.css
现在更新您的 mail.php 配置文件中的 markdown 选项
'markdown' => [ 'theme' => 'my-theme', 'paths' => [ resource_path('views/vendor/mail'), ],],
现在,任何发出的 Markdown 电子邮件都将使用您的自定义主题。
在 Laravel 5.5 中,这将变得更加灵活。您将能够直接在 Mailable 类中指定要使用的主题。
让我们举个例子。假设您正在构建一个应用程序,您需要向用户发送电子邮件通知,以及在组织内部向管理员发送电子邮件通知。您乐于对内部电子邮件使用 Laravel 的默认样式,但希望您的用户收到与您的品牌相匹配的通知。
与之前一样,通过在以下位置添加 CSS 文件来创建您的主题
resources/views/vendor/mail/html/themes
现在,只需在用于向用户发送电子邮件的任何 Mailable 类中定义一个 $theme
属性,该属性引用您的新主题即可。
class SendInvoice extends Mailable{ protected $theme = 'my-theme'; ...}