Как встраивать изображения base64 в электронное письмо с уценкой Laravel - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть автоматическая электронная почта на Laravel PHP, которая информирует пользователя о том, что срок действия определенного продукта истек.

Я хотел бы включить изображение base64, которое должно быть встроено в само письмо.

Можно ли встраивать изображения base64 в электронное письмо с уценкой с помощью Laravel?

Если да, то как?

Ниже приведен шаблон блэйда для уценки по электронной почте:

@component('mail::message')
![Logo][logo]
[logo]: {{asset('frontend/img/core-img/logo-dark.png')}} "Logo"

**Product Expiry**

Dear {{$userName}},

This is to inform you that your product **{{$listingName}}**.

Your item was removed from the Market Place. Should you wish to re-list the item kindly do so from the app.

![alt]{{$listingImage}}

Should you require any information or need professional assistance kindly get in touch:

@component('mail::button', ['url' => ''])
    Contact Us
@endcomponent

Thanks,<br>
# **{{ config('app.name') }} Team**

![App Icon|100x100]({{asset('frontend/img/core-img/app-logo.png')}})
@endcomponent

икласс для этого шаблона электронной почты:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class ListingExpiryEmail extends Mailable
{
    use Queueable, SerializesModels;

    protected $user_name;
    protected $listing_name;
    protected $listing_image;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($user_name, $listing_name, $image)
    {
        $this->user_name = $user_name;
        $this->listing_name = $listing_name;
        $this->listing_image = $image;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->subject('MyHurryApp Listing Expiry')->markdown('emails.listings.listingexpiryemail', [
            'userName' => $this->user_name,
            'listingName' => $this->listing_name,
            'listingImage' => $this->listing_image
        ]);
    }
}

Спасибо

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Это работает для меня

<img src="data:image/png;base64,{base64_encode(file_get_contents(public_path('/image/logo.png')))}}">
0 голосов
/ 09 февраля 2019

После дальнейших исследований я обнаружил, что это невозможно.

Согласно: https://superuser.com/questions/1199393/is-it-possible-to-directly-embed-an-image-into-a-markdown-document

Уценка документов - это просто текстовый файл, и текстовые редакторы не будут знать, что делать сдвоичное изображение внутри «текста».

Сказав, что может быть способ обойти это ограничение:

Существуют методы, такие как MIME и base64, для кодирования двоичных данных в текстфайл в некотором смысле, но большинство текстовых редакторов и средств визуализации Markdown не будут знать, что делать с документом в кодировке MIME, который содержит текстовую часть Markdown и часть изображения в кодировке base64.

Но явсе еще в поисках возможного решения.

Если кто-то может вести меня дальше, был бы очень признателен.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...