Задача. Вопросы, на которые отвечают поля учёта, — шифровалась ли доставка, через какой прокси она ушла, после скольких неудач, — всплывают уже после рассылки. А поле, не названное заранее, в файл не попадало, и данных за это время нет.
Из чего складывается:
Области у составляющих разные. Поля выбираются на вид записи в каждом блоке <acct-file>, поэтому узел может писать подробный файл для одного потребителя и скупой для другого. Виды записей выбираются так же: по умолчанию только d и b.
Как они взаимодействуют. Это одно решение, а не четыре: что должна говорить запись о доставке. Без этих полей она говорит, что письмо дошло; с ними — с какой защитой транспорта, через какой прокси, после скольких неудач и сколько всё заняло. Цена — байты на запись; ограничение — поле действует только вперёд.
Что назвать и что это даёт:
| Поле | В звёздочке | На что отвечает |
|---|---|---|
| dlvTlsProtocol, dlvTlsCipher | нет | зашифрована ли доставка и чем |
| numRetries, timeFirstAttempt, totalSecondsQueued | нет | сколько неудач и времени до доставки |
| dlvProxyName | нет | через какой прокси ушло письмо |
| bounceCat | у b да, у d нет | категория отказа |
<acct-file /var/log/pmta/acct.csv> records d, b record-fields d *, timeFirstAttempt, numRetries, dlvTlsProtocol, dlvTlsCipher, dlvProxyName record-fields b *, timeFirstAttempt, numRetries </acct-file>
grep -n 'record-fields' /etc/pmta/config head -1 "$(ls -t /var/log/pmta/acct-*.csv | head -1)"