#laravel #email #markdown #laravel-8
#laravel #Адрес электронной почты #уценка #laravel-8
Вопрос:
Я отправляю электронное письмо с уценкой, используя класс рассылки Laravel.
Вот следующий код для почтового отправления.
<?php
namespace AppMail;
use ApptraitsMailRecordMailTrait;
use AppUser;
use IlluminateBusQueueable;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;
use LaravelSparkInvitation;
class ExistingUserCompanyInviteMail extends Mailable
{
use Queueable, SerializesModels, RecordMailTrait;
/**
* Create a new message instance.
*
* @return void
*/
protected $invite;
public $inviter;
public $view = 'email.invitation-to-current-user';
public function __construct(Invitation $invite, User $inviter)
{
$this->invite = $invite;
$this->inviter = $inviter;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$invitation = $this->invite;
$view = $this->view;
$to = $this->to[0]['address'];
$sent_by_email = $this->inviter->email;
$this->withSwiftMessage(function ($message) use($invitation, $view, $to, $sent_by_email){
$message->view = $view;
$message->sent_to_email = $to;
$message->sent_by_email = $sent_by_email;
$message->mailable_type = Invitation::class;
$message->mailable_id = $invitation->id;
});
return $this->markdown($this->view,['invitation' => $this->invite, 'inviter' => $this->inviter, 'entity' => $this->invite->team->name, 'url' => url('/home/invitations')])->subject("Invitation");
}
}
Я получаю электронное письмо в своем почтовом ящике с правильным текстом и стилем, но не с изображением, оно загружается не так, как должно.
Вот код для HTML:
<tr>
<td class="header">
<a href="{{ $url }}" style="display: inline-block;">
<img src="{{ asset('/img/logo.svg')}}" class="logo" alt="logo1">
</a>
</td>
</tr>
Это URL-адрес, который я получаю от изображения в отправленном электронном письме:
Комментарии:
1. Чего вы ожидаете? Эта ссылка не работает: «404. Это ошибка. Запрошенный URL-адрес /proxy/8oh80_LJVyfK50ZObX23alnA8vhDzf3vXWJC_kHVgccnfzs-zSher-TbH9fO4RcDWjTQ5s8c_q3V6qc=s0-d-e1-ft не найден на этом сервере. Это все, что мы знаем. » Убедитесь, что вы используете URL-адрес, который действительно на что-то указывает.
2. @Chris очевидно, что это не URL-адрес, используемый в представлении HTML.
3. @miken32, почему «очевидно»? OP ничего не рассказал нам о том, как размещаются изображения для этого приложения. Хостинг изображений в облачных сервисах довольно распространен.
4. Можете ли вы добавить раздел HTML из электронного письма, который соответствует разделу вашего представления, указанному выше?
5. Gmail может заблокировать изображение, что зависит от предпочтений пользователя, но URL-адрес изображения также является локальным
http://core-hosp.test/...
, поэтому он никогда не будет отображаться. Используйте что-то вроде mailhog для проверки ваших писем, но также убедитесь, что URL-адрес изображения общедоступен в Интернете, а не только с вашего локального компьютера.