Перейти к основному содержимому

Класс Pimcore Mail

Класс Pimcore\Mail расширяет стандартный класс Symfony Symfony\Component\Mime\Email, добавляя специфические для Pimcore возможности.

Если настройки электронной почты заданы в вашем файле config/config.yaml, они применяются автоматически при инициализации объекта Pimcore\Mail. Перед использованием Pimcore\Mail необходимо задать настройки электронной почты.

Класс Pimcore\Mail автоматически берет на себя рутинные задачи: встраивание CSS, нормализацию URL-адресов и обработку выражений Twig. Обратите внимание, что все CSS-файлы встраиваются в HTML через тег <style>, так как пути к изображениям также проходят процесс нормализации.

Полезные методы

МетодОписание
disableLogging()Отключает логирование писем (по умолчанию включено)
setParams(array)Передает массив параметров в объект запроса и движок Twig
setParam($key, $value)Устанавливает одиночный параметр для запроса и Twig
isValidEmailAddress(emailAddress)Статический помощник для валидации email-адреса
setDocument(Document_Email)Устанавливает документ Pimcore (Email Document) в качестве тела письма
getDocument()Возвращает установленный объект документа
getSubjectRendered()Рендерит тему письма как шаблон Twig с переданными параметрами и возвращает результирующую тему
getBodyHtmlRendered()Рендерит содержимое письма как Twig-шаблон и возвращает итоговый HTML
getBodyTextRendered()Рендерит текстовую версию и возвращает итоговый текст. Если текст не был задан явно через $mail->text(), текстовая версия будет создана из HTML автоматически.y

Примеры использования

$params = ['firstName' => 'Pim', 'lastName' => 'Core', 'product' => 73613];  

//Отправка документа Pimcore как письма
$mail = new \Pimcore\Mail();
$mail->to('example@pimcore.org');
$mail->setDocument('/email/myemaildocument');
$mail->setParams($params);
$mail->send();


// Отправка текстового письма

$mail = new \Pimcore\Mail();
$mail->to('example@pimcore.org');
$mail->text("This is just plain text");
$mail->send();

// Отправка HTML-письма с переменными Twig
$mail = new \Pimcore\Mail();
$mail->to('example@pimcore.org');
$mail->bcc("bcc@pimcore.org");
$mail->setParams([
'myParam' => 'Just a simple text'
]);
$mail->html("<b>some</b> rich text: {{ myParam }}");
$mail->send();

//Добавление ассета как вложения
if($asset instanceof Asset) {
$mail->attach($asset->getData(), $asset->getFilename(), $asset->getMimeType());
}

//Встраивание изображения
$mail = new \Pimcore\Mail();
$mail->to('example@pimcore.org');

$mail->embed($asset->getData(), 'logo', $asset->getMimeType());
//или
$mail->embedFromPath($asset->getRealFullPath(), 'logo', $asset->getMimeType());

$mail->html("Embedded Image: <img src='cid:logo'>"); //имя изображения (передается вторым аргументом в embed) в качестве ссылки
$mail->send();


Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.