А чего неудобного-то ? Делаешь хэш, в котором ключ привязываешь к идетификатору очереди и всех делов-то. То же самое и с логами sendmail. Попутно можешь отслеживать всякие форварды. Например:
CBA9A3C0039: uid=105 from=<xxx@sender.domain>
CBA9A3C0039: message-id=<20050213153413.0E8BE236ED7@some.domain>
CBA9A3C0039: from=<то_что_написано_в_поле_from>, size=1234, nrcpt=3 (queue active)
CBA9A3C0039: to=<recipient@some.domain>, relay=local, delay=0, status=sent (forw
arded as CEFDE3C003A)
Идентификатор очереди CBA9A3C0039. Письмо отфорвардилось по алиасам или ~/.forward в очередь с идентификатором CEFDE3C003A, значит дальнейшую его судьбу следует смотреть в этой очереди. Отравитель есть всегда (в первой строке), если письмо не было сгенерировано на этом же сервере (например, кроном) и отправлено по локальному интерфейсу. Получатель тоже имеется. Что не понятно ?
PS. Не забыть про chroot окружения менеджера очередей. С ним связано наличие в логах строки с размером письма. Дело в том, что после logrotate дерагется "syslog restart". Соответственно, теряются все соединения с syslog. Они восстанавливаются автоматически на уровне glibc, но если программа работает с chroot-окружении, то она теряет соединение, ибо не видит /var/run. Два варианта решения проблемы:
1. убрать chroot у "queue manager"
2. рестартовать postfix после каждого рестарта syslog-а