iso-times

<acct-file>

Формат временных меток в записях учёта
в конфигурации это строкаiso-times yesвнутри блока <acct-file>
Как выглядит время в файле

Строка задаёт вид временных меток. Умолчание — yes, то есть формат ISO.

Альтернатива — число секунд с начала 1970 года. Это компактнее и удобнее машине, но нечитаемо человеку и требует знать часовой пояс отдельно.

Формат ISO несёт смещение пояса в себе — этим он и хорош на парке, где узлы стоят в разных странах: запись остаётся однозначной без знания того, где именно писавший её узел.

Строка касается только учёта. На журнал MTA и на заголовки писем она не влияет.

Главная ловушка — выключить ради компактности и получить неоднозначность. Число секунд не хранит пояса, и на парке из узлов в разных зонах разбор становится зависимым от того, где стоял узел. Экономия при этом — несколько байтов на запись.
Что делает Хаб. Не пишет — остаётся умолчание, то есть ISO. Это удобно и нам: приёмник разбирает метки без дополнительных предположений о поясе узла.
Рекомендуемые значения

Менять почти никогда не нужно:

Значение Когда
yes (умолчание) всегда
no приёмник учёта требует секунд с начала эпохи
Умолчание yes и сам выбор между форматами — из руководства (§ 3.3.11.7, § 12.1.2.2). Довод про парк в разных поясах — наш.
Пример в конфигурации
# умолчание, записанное явно — метка несёт смещение пояса
<acct-file /var/log/pmta/acct.csv>
    records d, b
    iso-times yes</acct-file>
Записывать умолчание явно имеет смысл там, где файл учёта разбирает чужая программа: строка отвечает на её вопрос без чтения руководства.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается1 ошибка▶

Переключают формат на работающем потоке учёта

наш опыт

Чем чреватоРазбирающая программа получает метки другого вида посреди файла или посреди пачки. Ошибка разбора при этом не обязательна — возможно и молчаливое искажение времени.
Как заметитьВ аналитике события с датой 1970 года или сдвинутые на часы.
Как правильноМенять формат только вместе с разбирающей стороной, а на потоке — заводя новый блок учёта.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
iso-times <boolean>
Значения
yes | no | true | false
Умолчание
yes § 3.3.11.7
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<acct-file>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: строка живёт внутри своего <acct-file> и касается меток только его записей. Два потока учёта могут писать время по-разному.
Как проверить на узле
Формат виден в самом файле — достаточно одной записи:
head -2 "$(ls -t /var/log/pmta/acct-*.csv | head -1)"
Метка вида 2026-08-28T12:34:56+03:00 — формат ISO. Голое число — секунды с начала эпохи, и пояс придётся знать отдельно.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Собрать телеметрию