Notifications на Email
Для отправки уведомлений на почту, необходимо настроить драйвер mail для вашего канала уведомлений.
Пример конфигурации канала mail в файле config/notifications.php для отправки Email сообщений через mail драйвер:
//..
'channels' => [
'mail' => [
'driver' => 'mail',
'server' => 'smtp.example.com',
'port' => 587,
'login' => 'user@example.com',
'password' => 'password',
'from' => [
'mail' => 'noreply@example.com',
'name' => 'Your Application'
],
'timeout' => 5,
],
],
//..
PHP
Создание уведомления
Для отправки уведомления на почту, необходимо определить метод toMail(mixed $recipient) который должен вернуть объект Imhotep\Notifications\Messages\MailMessage. Класс MailMessage содержит несколько простых методов, которые помогут создать гибкие email-сообщения. Давайте посмотрим на пример:
namespace App\Notifications;
use App\Models\User;
use Imhotep\Notifications\Notification;
use Imhotep\Notifications\Messages\MailMessage;
class MyMailNotification extends Notification
{
public function via(mixed $recipient): array
{
return ['mail'];
}
public function toMail(mixed $recipient): MailMessage
{
$message = new MailMessage();
// Устанавливает тему письма
$message->subject('Welcome to Imhotep!');
// Добавляет персонализированное приветствие,
// обычно отображается как <h1>
$message->greeting('Hello!');
// Добавляет текстовую строку
$message->line('Your the order №12345 created.');
// Добавляет текстовую строку при выполнении условия
$message->line(true, 'Your bonus available in profile.');
// Добавляет разделительную пустую линию
$message->newLine(); // Одна пустая строка
$message->newLine(2); // Две пустые строки
// Добавляет кнопку с действием
$message->action('Read Docs', 'https://imhotep.dev/docs');
// Использование View шаблона
$message->view('emails.welcome', $data);
// Приоритет сообщения
$message->priority(4);
// Добавить один или несколько email-адресов для обратного ответа
$message->replyTo('john@example.dev');
// или
$message->replyTo('john@example.dev', 'John'); // Можно добавить имя отправителя
// или
$message->replyTo([ // Можно передать массив email-адресов
'john@example.dev'
['jane@example.dev', 'Jane'] // Можно указать имя отправителя
]);
// Добавить одного или нескольких получателей копий сообщения
$message->cc('john@example.dev');
// или
$message->cc('john@example.dev', 'John'); // Можно добавить имя отправителя
// или
$message->cc([ // Можно передать массив email-адресов
'john@example.dev'
['jane@example.dev', 'Jane'] // Можно указать имя отправителя
]);
// Добавить одного или нескольких скрытых получателей копии сообщения
$message->bcc('john@example.dev');
// или
$message->cc('john@example.dev', 'John'); // Можно добавить имя отправителя
// или
$message->cc([ // Можно передать массив email-адресов
'john@example.dev'
['jane@example.dev', 'Jane'] // Можно указать имя отправителя
]);
return $message;
}
}
PHP