Метод html
Метод html класса Mail
применяется для отправки электронных писем, содержащих HTML-разметку.
Первым параметром передаётся HTML-содержимое письма в виде строки,
вторым - массив данных для передачи в шаблон (необязательный параметр),
третьим - замыкание (closure), в котором настраивается получатель,
тема письма и другие параметры.
Синтаксис
<?php
Mail::html($htmlContent, $data, function ($message) {
$message->to($recipient);
$message->subject($subject);
});
?>
Пример
Давайте отправим простое HTML-письмо с приветствием:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Mail;
class MailController extends Controller
{
public function sendWelcomeEmail()
{
$html = '<h1>Welcome!</h1><p>Thank you for registering.</p>';
Mail::html($html, [], function ($message) {
$message->to('user@example.com');
$message->subject('Welcome to our site');
});
echo 'Email sent successfully';
}
}
?>
Результат выполнения кода:
"Email sent successfully"
Пример
Отправим письмо с данными из массива, которые подставляются в HTML-шаблон:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Mail;
class MailController extends Controller
{
public function sendUserNotification()
{
$data = [
'name' => 'John Doe',
'orderId' => 12345,
'total' => 99.99
];
$html = '<p>Hello, {{$name}}!</p>
<p>Your order #{{$orderId}} has been confirmed.</p>
<p>Total: ${{$total}}</p>';
Mail::html($html, $data, function ($message) {
$message->to('client@example.com');
$message->subject('Order Confirmation');
});
echo 'Notification sent';
}
}
?>
Результат выполнения кода:
"Notification sent"
Пример
Используем метод html с настройкой получателя через массив:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Mail;
class MailController extends Controller
{
public function sendMultipleRecipients()
{
$html = '<h2>System Update</h2>
<p>The system will be updated at midnight.</p>';
Mail::html($html, [], function ($message) {
$message->to(['admin1@example.com', 'admin2@example.com']);
$message->subject('System Maintenance');
$message->from('system@example.com', 'System Admin');
});
echo 'Email sent to multiple recipients';
}
}
?>
Результат выполнения кода:
"Email sent to multiple recipients"
Пример
Отправим письмо с вложением, используя метод html:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Mail;
class MailController extends Controller
{
public function sendEmailWithAttachment()
{
$html = '<p>Please find the attached document.</p>';
Mail::html($html, [], function ($message) {
$message->to('manager@example.com');
$message->subject('Monthly Report');
$message->attach(storage_path('app/report.pdf'));
});
echo 'Email with attachment sent';
}
}
?>
Результат выполнения кода:
"Email with attachment sent"