Метод embedFromPath класса Email
Метод embedFromPath класса Email встраивает изображение из файла в тело письма. Первым параметром передаётся путь к файлу на диске. Вторым параметром можно передать имя (CID), под которым изображение будет доступно в HTML-коде письма. Если имя не указано, оно будет сгенерировано автоматически. Метод возвращает строку - CID-идентификатор, который затем используется в атрибуте src тега img через префикс cid:.
Синтаксис
$email->embedFromPath(string $path, ?string $name = null): string
Пример
Давайте создадим письмо и встроим в него изображение из файла:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mime\Email;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Routing\Attribute\Route;
class EmailController extends AbstractController
{
#[Route('/send-email', name: 'send_email')]
public function send(MailerInterface $mailer): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Embedded image')
->html('<p>Hello</p><img src="cid:logo">');
$cid = $email->embedFromPath('/path/to/logo.png', 'logo');
$mailer->send($email);
return new Response('Email sent with CID: ' . $cid);
}
}
?>
Результат выполнения кода:
"Email sent with CID: logo"
Пример
Давайте встроим изображение без указания имени, чтобы CID был сгенерирован автоматически:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Attribute\Route;
class EmailController extends AbstractController
{
#[Route('/embed-auto', name: 'embed_auto')]
public function embed(): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Auto CID');
$cid = $email->embedFromPath('/path/to/image.jpg');
$email->html('<img src="cid:' . $cid . '">');
return new Response('Generated CID: ' . $cid);
}
}
?>
Результат выполнения кода:
"Generated CID: 1a2b3c4d5e6f"
Смотрите также
-
класс
Email,
который представляет электронное письмо -
метод
embed,
который встраивает изображение из строки -
метод
attachFromPath,
который прикрепляет файл к письму -
метод
html,
который задаёт HTML-содержимое письма