РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
825 of 1392 menu

Метод envelope

Метод envelope класса Mailable определяет метаданные письма, которые используются транспортным уровнем для маршрутизации и обработки сообщения. Метод возвращает экземпляр Envelope, в котором можно задать тему письма, адрес получателя, обратный адрес, заголовок Reply-To, а также дополнительные заголовки. Этот метод вызывается автоматически при формировании письма и позволяет отделить метаданные от содержимого.

Синтаксис

<?php use IlluminateMailMailablesEnvelope; public function envelope(): Envelope { return new Envelope( subject: 'Subject', to: ['example@example.com'], cc: ['cc@example.com'], bcc: ['bcc@example.com'], replyTo: ['reply@example.com'], from: ['sender@example.com'], tags: ['tag1', 'tag2'], metadata: ['key' => 'value'], ); } ?>

Метод envelope должен возвращать объект Envelope. Все параметры конструктора являются опциональными и могут быть указаны в любом порядке.

Пример

Определим базовое письмо с темой и получателем:

<?php namespace AppMail; use IlluminateBusQueueable; use IlluminateMailMailable; use IlluminateMailMailablesEnvelope; use IlluminateQueueSerializesModels; class OrderShipped extends Mailable { use Queueable, SerializesModels; public function envelope(): Envelope { return new Envelope( subject: 'Order Shipped', to: ['customer@example.com'], ); } public function content(): Content { return new Content( view: 'emails.orders.shipped', ); } } ?>

Результат выполнения кода:

"Email sent successfully"

Пример

Зададим несколько получателей и дополнительные заголовки:

<?php namespace AppMail; use IlluminateMailMailable; use IlluminateMailMailablesEnvelope; class WelcomeMail extends Mailable { protected $user; public function __construct($user) { $this->user = $user; } public function envelope(): Envelope { return new Envelope( subject: 'Welcome to our platform', to: [$this->user->email], cc: ['support@example.com'], bcc: ['admin@example.com'], replyTo: ['no-reply@example.com'], from: ['hello@example.com'], tags: ['welcome', 'onboarding'], metadata: ['user_id' => $this->user->id], ); } public function content(): Content { return new Content( view: 'emails.welcome', with: ['user' => $this->user], ); } } ?>

Результат выполнения кода:

"Mail with multiple recipients sent"

Пример

Используем метод envelope с динамическим определением темы на основе данных:

<?php namespace AppMail; use IlluminateMailMailable; use IlluminateMailMailablesEnvelope; class InvoiceMail extends Mailable { protected $invoice; public function __construct($invoice) { $this->invoice = $invoice; } public function envelope(): Envelope { return new Envelope( subject: 'Invoice #' . $this->invoice->number, to: [$this->invoice->client_email], replyTo: ['billing@example.com'], metadata: ['invoice_id' => $this->invoice->id], ); } public function content(): Content { return new Content( view: 'emails.invoice', with: ['invoice' => $this->invoice], ); } } ?>

Результат выполнения кода:

"Invoice email processed"

Метод envelope также можно использовать для установки пользовательских заголовков через массив headers, передавая его как дополнительный параметр в конструктор Envelope.

Смотрите также

  • класс Mailable,
    основной класс для создания писем
  • метод content,
    который определяет содержимое письма
  • метод with,
    который передает данные в шаблон письма
  • метод send,
    который отправляет письмо
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить