Язык шаблонов, общий для всех журналов провереноважноПишет Хаб
Строки журнала собираются из шаблонов, у которых есть доступ к целым объектам по пути и есть условия, — так что журнал может нести всё, что содержит письмо или результат, включая наши собственные поля.
Подробно
Документация поставщика подаёт форматы как горстку подстановок — {$email}, {$result}, {$date}. Поставочные значения показывают кое-что помощнее: {$result.state}, {$email.recipient}, {$json.connection.remote_ip} лезут внутрь объектов по пути, а {if …}{/if} прикрывает поля, которых может не оказаться. Отсюда два следствия. Первое: журнал доставки можно заставить нести придуманные нами же идентификаторы — письмо, опубликованное с произвольным свойством (номер кампании, номер плана прогрева), может писать это свойство в каждую строку попытки, и это самый дешёвый способ сшить вывод MailerQ с нашими записями: без тела письма и без лишней очереди. Второе: та же сила распространяется на данные, которых на диске видеть не хотелось бы. Адреса получателей там и так по умолчанию; добавленные в шаблон личные поля окажутся в обычном файле, живущем до ротации.