#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');