Метод getHeaders
Метод getHeaders класса Email возвращает
объект Headers, содержащий все заголовки письма:
From, To, Cc, Bcc,
Subject, Reply-To и другие. Параметров
метод не принимает. Через возвращённый объект можно
читать, добавлять и удалять заголовки с помощью методов
get, set, add и remove.
Синтаксис
$headers = $email->getHeaders();
Пример
Давайте создадим письмо и прочитаем значение заголовка
Subject через объект заголовков:
<?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('/email/headers', name: 'email_headers')]
public function headers(): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('hello');
$headers = $email->getHeaders();
$subject = $headers->get('Subject');
return new Response((string) $subject);
}
}
?>
Результат выполнения кода:
"hello"
Пример
Давайте получим список всех заголовков письма и выведем их имена в виде массива:
<?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('/email/all-headers', name: 'email_all_headers')]
public function allHeaders(): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->cc('cc@example.com')
->subject('article');
$names = [];
foreach ($email->getHeaders()->all() as $header) {
$names[] = $header->getName();
}
return new Response(implode(', ', $names));
}
}
?>
Результат выполнения кода:
"From, To, Cc, Subject"
Пример
Давайте через объект заголовков добавим собственный заголовок
X-Custom и прочитаем его значение:
<?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('/email/custom-header', name: 'email_custom_header')]
public function customHeader(): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('abcde');
$headers = $email->getHeaders();
$headers->addTextHeader('X-Custom', 'user');
$value = $headers->get('X-Custom')->getBody();
return new Response($value);
}
}
?>
Результат выполнения кода:
"user"