Невозможно прикрепить файл с электронной почтой в laravel 5.2

#laravel #email

#laravel #Адрес электронной почты

Вопрос:

Я пытаюсь прикрепить изображение с электронной почтой. Я пробовал много способов. Но я потерпел неудачу. Нет файла, прикрепленного к электронной почте. Я также пытался вставить изображение, но это также не работает. Пожалуйста, помогите мне выяснить проблему.

 Mail::send('emails.freetrial', $data, function($message) use ($data){
        $img =  Freetrialsimage::where('freetrials_id', '=', $data['id']);
        $message->from('hello123@gmail.com');
        $message->to('text123@gmail.com');
        $message->subject('Free Trial');
        foreach ($img as $attach)
      {
          $message->attachData($img->file_path, $img->file_name);;
      }
    });
  

Ответ №1:

Если вы хотите прикрепить файл по пути — используйте attach() метод, если у вас есть необработанное содержимое файла (двоичные данные изображения) — тогда используйте attachData() . В вашем примере это выглядит attach() более подходящим.

Из документации

При прикреплении файлов к сообщению вы также можете указать отображаемое имя и / или MIME-тип, передав массив в качестве второго аргумента методу attach:

$message->attach($pathToFile, ['as' => $display, 'mime' => $mime]);

И о методе attachData ()

Метод attachData может использоваться для прикрепления необработанной строки байтов в качестве вложения. Например, вы можете использовать этот метод, если вы создали PDF-файл в памяти и хотите прикрепить его к электронной почте, не записывая его на диск:

$message->attachData($pdf, 'invoice.pdf');