Laravel как отправить email

Laravel-среда для разработки приложений предлагает простой и удобный способ отправки писем с помощью встроенного драйвера. Данная статья описывает процесс создания и отправки письма с примером.

Отправка email с помощью фреймворка Laravel достаточно простая. Все, что вам нужно, это определить маршрут для отправки письма, написать код для отправки письма в контроллере и создать шаблон электронной почты. После этого вы можете использовать этот маршрут для отправки письма из любого места вашего приложения.

Настройка маршрута

В первую очередь, нам нужно определить маршрут для отправки письма. Откройте файл routes/web.php и добавьте следующий маршрут:


Route::post('/send-email', 'EmailController@send');

В этом маршруте мы указали метод POST и добавили контроллер EmailController и метод send.

Контроллер

Для отправки письма нам нужен контроллер. В Laravel вы можете легко создать контроллер с помощью artisan команды.


php artisan make:controller EmailController

Откройте после этого файл app/Http/Controllers/EmailController.php и добавьте следующий код:


public function send(Request $request)
{
    $data = [
        'title' => 'Заголовок письма',
        'body' => 'Содержание письма'
    ];
 
    Mail::send('emails.test', $data, function($message) {
        $message->to('email@example.com', 'Имя получателя')->subject('Тема письма');
    });
 
    return back()->with('success', 'Письмо отправлено!');
}

В контроллере определен метод send, который принимает объект Request и предоставляет два параметра для шаблона письма: заголовок и содержание. Мы также используем Mail facade для отправки письма с данными параметрами, адресом электронной почты и темой письма.

Шаблон письма

Теперь нам нужно создать шаблон письма. В папке resources/views создайте папку emails и добавьте файл test.blade.php. Это будет шаблоном для письма, и мы будем использовать два параметра, переданные из контроллера. В этом файле добавьте следующий код:


<html>
<head>
    <title></title>
</head>
<body>
    <h1>{{ $title }}</h1>
    <p>{{ $body }}</p>
</body>
</html>

В этом шаблоне мы используем два параметра, переданные из контроллера. Теперь мы можем отправить письмо из любого места в приложении, используя этот маршрут.

Ответы (0)