Вставка изображения в mail

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
SaintRu
Сообщения: 47
Зарегистрирован: 2020.05.13, 11:22

Вставка изображения в mail

Сообщение SaintRu »

Здравствуйте, скажу сразу, по данной проблеме перечитал очень много, но все равно не могу найти причину
Ошибка:
Swift_IoException
Unable to open file for reading [Content-Type: image/png; name=logo-mail.png
Дело в том, что файл, то считывается, т.к. после ошибки идет сам закодированный файл.
Где-то попадалось, что надо указать путь не реальный, а полный путь к загрузке. А подробностей не было, как это сделать.
PHP:

Код: Выделить всё

        $send = $this->mailer->compose($template, ['booking' => $booking])
            ->setTo($email)
            ->setFrom([\Yii::$app->params['supportEmail'] => 'Уведомление'])
            ->setSubject($booking->getName() . ' ' . BookingHelper::caption($booking->getStatus()))
            ->send();
HTML:

Код: Выделить всё

<?php
...
/* @var $message \yii\mail\MessageInterface the message being composed */
?>
...
<img src="<?= $message->embed(Swift_Image::fromPath(\Yii::$app->params['staticPath'] .'/files/images/logo-mail.png'));?>"/>
...

Аватара пользователя
yiijeka
Сообщения: 3091
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Вставка изображения в mail

Сообщение yiijeka »

Дело скорее всего в \Yii::$app->params['staticPath']

SaintRu
Сообщения: 47
Зарегистрирован: 2020.05.13, 11:22

Re: Вставка изображения в mail

Сообщение SaintRu »

yiijeka писал(а):
2020.09.28, 09:35
Дело скорее всего в \Yii::$app->params['staticPath']
Подменял данные на несуществующий путь, ошибка была другая - файл не найден.
А так, там лежит:

Код: Выделить всё

dirname(__DIR__, 2) . '/static'
Если делаю команду:

Код: Выделить всё

print_r($message->embed(Swift_Image::fromPath(\Yii::$app->params['staticPath'] .'/files/images/logo-mail.png')));
то выдает

Код: Выделить всё

cid:bd757f9ec307a71ed46fe4acb2f0b605@travel.loc
Полностью ошибка выглядет так

Код: Выделить всё

Swift_IoException
Unable to open file for reading [Content-Type: image/png; name=logo-mail.png
Content-Transfer-Encoding: base64
Content-ID: <bd757f9ec307a71ed46fe4acb2f0b605@travel.loc>
Content-Disposition: inline; filename=logo-mail.png

iVBORw0KGgoAAAANSUhEUgAAAiYAAABkCAYAAACywfsIAAAACXBIWXMAAAsTAAALEwEAmpwYAAAK
NWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXN 
...
gdzZRQAAAABJRU5ErkJggg==]

Ответить