Итак, я пытаюсь отправить html-письмо в Laravel 5.6 и сталкиваюсь с некоторыми забавными проблемами.
С одной стороны, документация довольно ужасна, когда дело доходит до настройки содержимого HTML или даже использованияHTML-макет по умолчанию.
https://laravel.com/docs/5.6/mail#writing-mailables
В разделе «Настройка представления» есть раздел, в котором говорится, что нужно просто сделать что-то вроде следующего.
return $this->view('emails.orders.shipped');
Круто, я делаю это.В моем блейд-файле у меня просто
Here is a test message.
И он отправляет просто отлично.Но что не имеет никакого смысла, так это то, что на странице также написано, что вы можете запустить следующую команду ремесленника, чтобы сгенерировать шаблон электронной почты по умолчанию.
php artisan vendor:publish --tag=laravel-mail
Он говорит: «Почтовый каталог будет содержать HTML и разметкукаталог, каждый из которых содержит свои соответствующие представления каждого доступного компонента. Компоненты в каталоге html используются для создания HTML-версии вашей электронной почты. "
В документации также подробно рассказывается о том, как настраивать и использовать эти уценки.шаблоны.Вы просто вызываете @component('mail::message')
в верхней части файла блейда уценки ... но Я не хочу уценки .Я просто хочу обычную электронную почту в формате HTML.
@component('mail::message')
не работает при использовании ->view()
только при использовании ->markdown()
.Я также не могу просто сделать следующее.
@extends('vendor.mail.html.layout')
Test message
Как говорится, слот - это неопределенная переменная в журнале ошибок.
Не уверен почему, файл layout.blade.phpв каталоге / vendor / mail / html / содержится следующее ...
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<style>
@media only screen and (max-width: 600px) {
.inner-body {
width: 100% !important;
}
.footer {
width: 100% !important;
}
}
@media only screen and (max-width: 500px) {
.button {
width: 100% !important;
}
}
</style>
<table class="wrapper" width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="center">
<table class="content" width="100%" cellpadding="0" cellspacing="0">
{{ $header ?? '' }}
<!-- Email Body -->
<tr>
<td class="body" width="100%" cellpadding="0" cellspacing="0">
<table class="inner-body" align="center" width="570" cellpadding="0" cellspacing="0">
<!-- Body content -->
<tr>
<td class="content-cell">
{{ Illuminate\Mail\Markdown::parse($slot) }}
{{ $subcopy ?? '' }}
</td>
</tr>
</table>
</td>
</tr>
{{ $footer ?? '' }}
</table>
</td>
</tr>
</table>
</body>
</html>
Не уверен, почему он вызывает Markdown::parse($slot)
в html-версии письма.
Как мнеидти о расширении этого представления в HTML-письмо?Хотел, по крайней мере, получить шаблон HTML по умолчанию, не создавая свой собственный ...