我想在postfix成功发送邮件(本地或远程)时运行程序。 我想通过标题进行编程,如果可能的话还有目标IP地址(不包括垃圾邮件filter传送)。
我只是有一个想法:交货状态通过uniqe运输程序通知处理,但我更喜欢上述。
我的目标是logging电子邮件的生命周期(事件):它发生了,它从(到),主题,date时间,消息ID,消息状态:反弹,发送)消失。 我只需要传出邮件的状态,因为传入和退回程序正在工作。
有可能触发一个程序(类似于一个输送pipe道/产卵)或DSN“作弊”停留?
在此先感谢您的答复!
这仅用于logging消息标题。
默认情况下,postix已经logging了大部分这些信息,尽pipe不是一行。 但是,它不会logging主题或消息ID。 我们可以通过使用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
这些消息将被logging到由syslog_facility (default: mail)指定的设施中的syslog中。
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=<[email protected]> Apr 9 15:37:25 mta-msa postfix/qmgr[14653]: DA75A231C600: from=<[email protected]>, 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: <[email protected]> Apr 9 15:37:26 mta-msa postfix/smtp[14675]: DA75A231C600: to=<[email protected]>, 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
你可以用一些插入postfix处理pipe道的东西来做到这一点, 比如amavisd-new。
简而言之,postfix被configuration为在postfix的master.conf有一个新的服务。 该服务将是一个小程序,保存消息的副本,然后重新插入邮件到后缀。