Postfix退回邮件,其中包含脚本中的错误信息

时间:2014-04-18 11:09:50

标签: python postfix-mta

我想在postfix中创建退回邮件,该邮件将显示我的过滤器脚本中的错误信息。我发现如果我从脚本中返回错误代码,例如1,我将看到所有数据打印到标准输出,但我也会看到有关脚本文件的信息。例如:

This is the mail system at host mail.somesys.pl.

I'm sorry to have to inform you that your message could not be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to postmaster.

If you do so, please include this problem report. You can delete your own text from the attached returned message.

                   The mail system

<user01@mail.somesys.pl>: Command died with status 1:
    "/opt/SmtpReceiver/SmtpReceiverHandler.py". Command output: NO FILES OR BAD
    CREDENTIALS

我想只有这样的东西:

...
                   The mail system

NO FILES OR BAD CREDENTIALS

我的postfix master.cf config:

smtp      inet  n       -       n       -       -       smtpd
        -o content_filter=myhook:dummy
...
myhook unix - n n - - pipe
  flags=F user=user01 argv=/opt/SmtpReceiver/SmtpReceiverHandler.py ${sender} ${size} ${recipient}

和python脚本:

if __name__=='__main__':

    try:
        app = SmtpReceiverHandler();
        app.run();
    except Exception, e:
        print e;
        sys.exit(1);

1 个答案:

答案 0 :(得分:1)

您可以在bouce_template_file

中指定main.cf
#/etc/postfix/main.cf
bounce_template_file = /etc/postfix/bounce.cf

#/etc/postfix/bounce.cf
failure_template = <<EOF
Charset: us-ascii
From: MAILER-DAEMON (Mail Delivery System)
Subject: Undelivered Mail Returned to Sender
Postmaster-Subject: Postmaster Copy: Undelivered Mail

    The mail system
EOF

参考:Postfix docs