Метод embed
Метод embed класса Email встраивает изображение
непосредственно в тело письма. Это удобно, когда картинка должна
отображаться в письме, не требуя внешнего хостинга. Первым параметром
передаётся содержимое изображения или поток, вторым - имя файла,
третьим - MIME-тип. Метод возвращает идентификатор cid,
который затем подставляется в HTML-код через схему cid:.
Синтаксис
public function embed(string|resource $body, string $name = null, string $contentType = null): string
Пример
Давайте встроим изображение в письмо и подставим его в HTML:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
class MailController extends AbstractController
{
public function send(MailerInterface $mailer): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Hello')
->html('<img src="cid:logo">');
$email->embed(file_get_contents('images/logo.png'), 'logo.png', 'image/png');
$mailer->send($email);
return new Response('sent');
}
}
?>
Результат выполнения кода:
"sent"
Пример
Давайте встроим изображение и получим его cid в переменную:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
class MailController extends AbstractController
{
public function send(MailerInterface $mailer): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('Hello');
$cid = $email->embed(file_get_contents('images/logo.png'), 'logo.png', 'image/png');
$email->html('<img src="cid:' . $cid . '">');
$mailer->send($email);
return new Response($cid);
}
}
?>
Результат выполнения кода:
"abcde12345"
Смотрите также
-
класс
Email,
который представляет электронное письмо -
метод
attach,
который прикрепляет файл к письму -
метод
embedFromPath,
который встраивает изображение из файла по пути -
метод
html,
который задаёт HTML-содержимое письма