Laravel Mailable Markdown Header + Footer

时间:2018-04-15 18:18:04

标签: php laravel markdown

我想在mailables中更改页眉和页脚插槽的内容。

我在template.blade.php中的内容是:

@component('mail::message')
{{ $message }}
@endcomponent

在我的message.blade.php

@component('mail::layout')
    {{-- Header --}}
    @slot('header')
        @component('mail::header')
            {{ $preheader }}
        @endcomponent
    @endslot

    {{-- Body --}}
    {{ $slot }}

    {{-- Subcopy --}}
    @isset($subcopy)
        @slot('subcopy')
            @component('mail::subcopy')
                {{ $subcopy }}
            @endcomponent
        @endslot
    @endisset

    {{-- Footer --}}
    @slot('footer')
        @component('mail::footer')
            $footer
        @endcomponent
    @endslot
@endcomponent

使用以下方式调用:

    return $this
        ->to($this->user->email)
        ->subject($this->config['subject'])
        ->from($this->config['from']['email'])
        ->markdown('emails.template', ['preheader' => $this->config['preheader'], 'footer' => $this->config['footer'], 'message' => $this->config['message']]);

然而,这并不是将预读器和页脚放在我想要的地方。我应该如何相应地调整我的文件,以便确实发生这种情况?

2 个答案:

答案 0 :(得分:1)

因此,请运行以下命令:

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

之后,您将在以下文件夹中包含一些文件:

resources/views/vendor/mail/

现在您可以编辑header.blade.php和footer.blade.php

resources/views/vendor/mail/html/header.blade.php
resources/views/vendor/mail/html/footer.blade.php

可以在此处找到CSS文件:

resources/views/vendor/mail/html/themes/default.css

您可以在此处制作自定义HTML和CSS:https://markdownmail.com

别忘了更改config / mail.php makdown路径:

resource_path('views/vendor/mail'),

答案 1 :(得分:1)

如果没有其他人来这里砸头,对消息文件或页眉/页脚文件没有任何更改,@ Zsolt会在接受的答案中提供线索。我一直在对markdown文件进行更改,但它们从未显示-就像Laravel指向错误的位置一样。那是...

如果像我一样,您正在开发一个已升级的Laravel应用程序(即您从5.x开始并随着时间的推移进行了升级),则有两个潜在问题。

首先,在ip/config/mail.php中,您可能必须创建降价路径。如果您在降价之前发布了可邮寄邮件,则整个降价邮件设置都将丢失。您可以从git repo中拉出它们,或者为了方便起见从这里拉出它们:

'markdown' => [
    'theme' => 'default',
    'paths' => [
        resource_path('views/vendor/mail'),
    ],
],

第二个问题,如果您较早发布了这些邮件文件,则HTML目录中的Laravel布局文件具有or运算符,该运算符会阻塞。将这三个运算符更改为??