Класс Envelope
Класс Envelope представляет собой конверт
электронного письма. Он хранит адреса отправителя
и получателей, а также тему письма, которая видна
в почтовом клиенте до открытия сообщения. Объект
Envelope можно передать в метод envelope
объекта Email, чтобы явно задать эти данные.
Первым параметром конструктора передаётся адрес
отправителя, вторым - массив адресов получателей,
третьим - массив адресов копии, четвёртым - массив
адресов скрытой копии.
Синтаксис
new Envelope(
Address $sender,
array $recipients = [],
array $cc = [],
array $bcc = []
)
Пример
Давайте создадим конверт с отправителем и одним получателем:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
use Symfony\Component\Mime\Envelope;
class MailController extends AbstractController
{
public function send(MailerInterface $mailer): Response
{
$envelope = new Envelope(
new Address('sender@example.com', 'Sender'),
[new Address('user@example.com', 'User')]
);
$email = (new Email())
->subject('hello')
->text('abcde')
->envelope($envelope);
$mailer->send($email);
return new Response('sent');
}
}
?>
Результат выполнения кода:
"sent"
Пример
Давайте добавим в конверт адреса копии и скрытой копии:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
use Symfony\Component\Mime\Envelope;
class MailController extends AbstractController
{
public function send(MailerInterface $mailer): Response
{
$envelope = new Envelope(
new Address('sender@example.com', 'Sender'),
[new Address('user@example.com', 'User')],
[new Address('cc@example.com', 'Cc')],
[new Address('bcc@example.com', 'Bcc')]
);
$email = (new Email())
->subject('article')
->text('hello')
->envelope($envelope);
$mailer->send($email);
return new Response('sent');
}
}
?>
Результат выполнения кода:
"sent"
Пример
Давайте получим данные конверта через методы
getSender и getRecipients:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Envelope;
class MailController extends AbstractController
{
public function show(): Response
{
$envelope = new Envelope(
new Address('sender@example.com', 'Sender'),
[new Address('user@example.com', 'User')]
);
$sender = $envelope->getSender()->getAddress();
$recipients = $envelope->getRecipients();
return new Response($sender . ' / ' . $recipients[0]->getAddress());
}
}
?>
Результат выполнения кода:
"sender@example.com / user@example.com"