Как добавить вложение к электронной почте в приложении Laravel?

#laravel

#laravel

Вопрос:

Как создать вложение для внешнего файла в laravel mail?

Мое хранилище находится на S3, и я хочу прикрепить его к своей почте laravel.

     Mail::send('emails.mail', $ddd, function($message) use ($compose_to, $compose_cc, $compose_bcc, $title, $subject, $bill) {
      $message->to(explode(',', $compose_to));
      isset($compose_cc) ? $message->cc(explode(',', $compose_cc)) : '';
      isset($compose_bcc) ? $message->bcc(explode(',', $compose_bcc)) : '';
      
      foreach($bill->files as $bb){
        $message-> attachFromStorageDisk('s3', 'snap/brief/'.$bb->filename);
      }

      $message->subject($subject);
      
      $message->from('hello@b166er.co', env('APP_NAME'));
    });
 

Как я могу это сделать?

Ответ №1:

Пожалуйста, дайте мне знать, это письмо с уценкой? также, пожалуйста, укажите версию laravel.

Вы можете следовать приведенному ниже коду и заменить путь к файлу соответствующим путем.

 Mail::send('emails.mail', $ddd, function($message) use ($compose_to, $compose_cc, $compose_bcc, $title, $subject, $bill) {
  $message->to(explode(',', $compose_to));
  isset($compose_cc) ? $message->cc(explode(',', $compose_cc)) : '';
  isset($compose_bcc) ? $message->bcc(explode(',', $compose_bcc)) : '';
  
  foreach($bill->files as $bb){

    $message->attach(Storage::disk('s3')->url('snap/brief/'.$bb->filename));
  }

  $message->subject($subject);
  
  $message->from('hello@b166er.co', env('APP_NAME'));
});
 

Комментарии:

1. Я редактирую свой код выше. он возвращает неверный метод для attachfromstroagedisk

2. Вас не хватает / / там $message-> attachFromStorageDisk('s3', '/snap/brief/'.$bb->filename); я добавил его, попробуйте

3. @TCS Я обновил свой ответ, поскольку вы обновили свой вопрос. Это решение работает для меня, вам просто нужно убедиться, правильный ли путь к файлу или нет.