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

Метод attach

Метод attach применяется к объекту класса Mailable и позволяет прикреплять файлы к письму перед его отправкой. Первым параметром передаётся путь к файлу в файловой системе, вторым - массив опций (необязательно), который может содержать ключи 'as' (имя файла в письме), 'mime' (MIME-тип) и 'disk' (диск файловой системы).

Синтаксис

<?php return $this->attach($path, $options); ?>

Пример

Давайте создадим класс письма и прикрепим к нему файл из локальной файловой системы:

<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailables\Attachment; use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Envelope; use Illuminate\Queue\SerializesModels; class WelcomeMail extends Mailable { use Queueable, SerializesModels; public function envelope(): Envelope { return new Envelope( subject: 'Welcome to our application', ); } public function content(): Content { return new Content( view: 'emails.welcome', ); } public function attachments(): array { return [ Attachment::fromPath('/path/to/file.pdf'), ]; } } ?>

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

"PDF file attached to email"

Пример

Давайте прикрепим файл с указанием имени и MIME-типа:

<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailables\Attachment; use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Envelope; use Illuminate\Queue\SerializesModels; class DocumentMail extends Mailable { use Queueable, SerializesModels; public function envelope(): Envelope { return new Envelope( subject: 'Important documents', ); } public function content(): Content { return new Content( view: 'emails.documents', ); } public function attachments(): array { return [ Attachment::fromPath('/path/to/document.pdf') ->as('report.pdf') ->withMime('application/pdf'), ]; } } ?>

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

"PDF report attached to email"

Пример

Давайте прикрепим файл из другого диска (например, S3):

<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailables\Attachment; use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Envelope; use Illuminate\Queue\SerializesModels; class StorageMail extends Mailable { use Queueable, SerializesModels; public function envelope(): Envelope { return new Envelope( subject: 'Storage files', ); } public function content(): Content { return new Content( view: 'emails.storage', ); } public function attachments(): array { return [ Attachment::fromStorage('/path/to/file.txt') ->as('file.txt') ->withMime('text/plain'), ]; } } ?>

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

"Text file from storage attached"

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

  • метод attachFromStorage,
    который прикрепляет файл из хранилища
  • метод attachData,
    который прикрепляет данные как файл
  • метод attachments,
    который возвращает массив прикреплений
  • класс Mailable,
    который представляет письмо в Laravel
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить