Laravel: как вставить изображение в электронное письмо как содержимое, а не как вложение

Я искал способы встроить изображение в электронное письмо, отправленное с помощью Laravel. Метод, который я нашел, который использует большинство людей, заключается в том, чтобы встроить изображение в качестве вложения.

<img src="{{$message->embed(asset('assets/img/logo.png'))}}" style="padding:0px; margin:0px" />

Есть ли способ вставить изображение, не будучи вложением? Я попытался преобразовать изображение в строки base64, но это даже не сработало.


person BlackPearl    schedule 01.11.2014    source источник
comment
Я не думаю, что это очень хорошая идея, потому что поддержка встроенных (закодированных) изображений в почтовых клиентах скудна. Некоторые позволяют удалить изображение (на самом деле, я думаю, что ни один из основных веб-клиентов электронной почты Gmail, Yahoo и т. д. не позволяет этого).   -  person Bogdan    schedule 01.11.2014
comment
Но я получаю электронные письма со встроенными изображениями, но не в виде вложений.   -  person BlackPearl    schedule 01.11.2014
comment
@BlackPearl Это не означает, что это работает везде, и не означает, что это хорошая идея.   -  person ceejayoz    schedule 01.11.2014
comment
Возможный дубликат Laravel 4: невозможно отправить электронную почту со встроенным встраиванием   -  person Jose Rojas    schedule 16.04.2016


Ответы (1)


Хорошо это или нет...

У тебя почти получилось. Я предполагаю, что проблема в том, что функция asset() генерирует полный URL-адрес, а Laravel нужен путь к файлу. Официальный документ

Попробуй это:

<img src="{{ $message->embed('assets/img/logo.png') }}" style="padding:0px; margin:0px" />
person lukasgeiter    schedule 01.11.2014
comment
не будет ли это вставлять файл как вложение? - person BlackPearl; 01.11.2014
comment
@BlackPearl Я так не думаю. Если вы посмотрите на официальные документы, которые я связал. В нем говорится, что это для встраивания встроенных вложений. также, если вы прокрутите немного вверх, вы увидите обычный способ прикрепления файлов. - person lukasgeiter; 01.11.2014
comment
Что именно? Он прикрепляется как вложение? - person lukasgeiter; 02.11.2014
comment
Хммм... может попробовать использовать функцию embedData и передать строку base64? - person lukasgeiter; 02.11.2014