Класс 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();
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.