Я хочу запустить программу, когда postfix успешно отправил письмо (локальное или удаленное). Я хотел бы передать заголовки программе и, если возможно, также IP-адрес или адрес назначения (исключить доставку спам-фильтра).
У меня просто есть идея: обработка уведомлений о статусе доставки через транспортную программу uniqe, но я бы предпочел вышеуказанное.
Моя цель - записывать время жизни (события) электронной почты: оно пришло, оно вышло (от, до, тема, дата и время, идентификатор сообщения, статус сообщения: отказ, отправлено). Мне нужно только состояние исходящей почты, потому что программа входящих и отказов работает.
Можно ли запустить программу (похожую на транспортную трубу / респаун) или DSN "чит" остаться?
Заранее благодарим за любой ответ!
Это только для записи заголовков сообщений.
По умолчанию postix уже записывает большую часть этой информации, но не в одну строку. Однако он не регистрирует тему или идентификатор сообщения. Мы можем добавить это, используя header_checks 5
.
Примечание: для всей почты, а не только исходящей, используйте header_checks
вместо того smtp_header_checks
.
#main.cf
smtp_header_checks = regexp:$config_directory/header-logging.cf
#header-logging.cf
/^subject:/ INFO
/^Subject:/ INFO
/^Message-Id:/ INFO
Эти сообщения будут регистрироваться в системном журнале в средстве, указанном syslog_facility
(default: mail)
.
Apr 9 15:37:25 mta-msa postfix/smtps/smtpd[14688]: DA75A231C600: client=192-0-2-5.example.com[192.0.2.5], sasl_method=LOGIN, sasl_username=foo
Apr 9 15:37:25 mta-msa postfix/cleanup[14686]: DA75A231C600: message-id=<000401d07315$bf0ea5a0$3d2bf0e0$@example.com>
Apr 9 15:37:25 mta-msa postfix/qmgr[14653]: DA75A231C600: from=<foo@example.com>, size=6495, nrcpt=1 (queue active)
Apr 9 15:37:26 mta-msa postfix/smtp[14675]: DA75A231C600: info: header Subject: RE: please email as you leave
Apr 9 15:37:26 mta-msa postfix/smtp[14675]: DA75A231C600: info: header Message-ID: <000401d07315$bf0ea5a0$3d2bf0e0$@example.com>
Apr 9 15:37:26 mta-msa postfix/smtp[14675]: DA75A231C600: to=<bar@example.org>, relay=mx.example.org[198.51.100.0]:25, delay=0.65, relays=0.01/0/0.33/0.31, dsn=2.0.0, status=sent (250 2.0.0 1tnx2ya0mh-1 Message accepted for delivery)
Apr 9 15:37:26 mta-msa postfix/qmgr[14653]: DA75A231C600: removed
Вы можете сделать это с помощью чего-то, что вставлено в конвейер обработки постфикса. как это делает amavisd-new.
Короче говоря, postfix настроен на наличие новой службы в постфиксе. master.conf
. эта служба будет небольшой программой, которая сохраняет копию сообщений, а затем повторно вставляет сообщения в постфикс.