Класс Email
Класс Email представляет электронное письмо.
Он позволяет задать отправителя, получателя,
тему, текст и HTML-содержимое письма, а также
прикрепить файлы и встроить изображения.
Экземпляр класса создаётся через new Email,
после чего настраивается цепочкой методов.
Синтаксис
<?php
use Symfony\Component\Mime\Email;
$email = new Email();
?>
Пример
Давайте создадим простое письмо с отправителем, получателем, темой и текстом:
<?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', name: 'email_index')]
public function index(): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('hello')
->text('abcde');
return new Response($email->getSubject());
}
}
?>
Результат выполнения кода:
hello
Пример
Давайте добавим HTML-содержимое и несколько получателей копии:
<?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-html', name: 'email_html')]
public function html(): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->cc('cc@example.com')
->bcc('bcc@example.com')
->subject('article')
->text('abcde')
->html('<p>abcde</p>');
return new Response($email->getBody()->toString());
}
}
?>
Результат выполнения кода:
abcde
Пример
Давайте прикрепим файл и встроим изображение в письмо:
<?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-attach', name: 'email_attach')]
public function attach(): Response
{
$email = (new Email())
->from('sender@example.com')
->to('recipient@example.com')
->subject('user')
->text('abcde')
->attachFromPath('/path/to/file.pdf')
->embedFromPath('/path/to/image.png', 'logo');
return new Response($email->getSubject());
}
}
?>
Результат выполнения кода:
user
Смотрите также
-
метод
to,
который задаёт получателя письма -
метод
from,
который задаёт отправителя письма -
метод
subject,
который задаёт тему письма -
класс
TemplatedEmail,
который позволяет формировать письмо из Twig-шаблона