1. 程式人生 > 其它 >Laravel 5.5 為 Mailables 型別新增 theme 屬性

Laravel 5.5 為 Mailables 型別新增 theme 屬性

在 Laravel 5.4 中 引入了 Markdown 郵件,使得我們在郵件中享受 Blade 模板的元件和 Slots 的同時,可以用 Markdown 語法編寫電子郵件。

Laravel 自帶了一系列預定義的元件,比如 headers, footers, buttons 以及 tables. 開發者可以很容易地在電子郵件模板中使用這些元件。

@component('mail::button', ['url' => $actionUrl, 'color' => $color])
    {{ $actionText }}
@endcomponent

開箱即用的 Markdown 郵件使用預設主題傳送,這意味著你可以不用做任何額外的設計工作就能傳送漂亮的電子郵件,並且也不用擔心所發出的電子郵件在所有的電子郵件客戶端中的相容性。

然而,萬一你想自己設計電子郵件的樣式,讓它與你的品牌更加匹配呢?在 Laravel 5.4 中,你可以通過建立自己的主題來達到這一目的。

首先按照以下路徑建立自己的樣式檔案:

// my-theme.css 是你自定義主題的樣式檔名
resources/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 的類中指定使用的主題。

首先還是和之前一樣,建立一個自定義主題的樣式檔案,比如resources/views/vendor/mail/html/themes/my-theme.css.

接下來,不必修改配置檔案,只要在你的 Mailable 類程式碼裡指定 $theme 屬性:

class SendInvoice extends Mailable
{
    protected $theme = 'my-theme';
    ...
}