On Wed, Jan 05, 2011 at 05:25:53PM +0000, Ian Halperin wrote:

> I would like postfix to send all emails received on SMTP off to an
> external process, which will decide whether to allow them through as
> normal, or whether to put them into the hold queue (or another
> quarantine area), where they have to wait for admin approval.
> 
> I was thinking of doing this with an after-queue content filter, which
> uses pipe(8) to run a script on each message, and the script itself
> will spawn "postsuper -h <queue_id>" if it decides to put the message
> on hold.

No this is wrong. Just tag the message, and put appropriate header_checks
in the post-filter Postfix smtpd+cleanup.

I use multiple (3) instances:

  Input Postfix ---> Postqueue Proxy ---> Output Postfix ---> Destination
                                              |
                                              |
                                              v
                                          Quarantine Postfix

The Input instance receives mail from external systems, delivers all
mail that is not rejected to the Output instance via a transparent
SMTP proxy that tags spam/malware/...

The Output instance has header checks that "FILTER" tagged mail into a
Quarantine instance which stores quarantined mail. Untagged email
is delivered directly to the recipient.

-- 
        Viktor.

Reply via email to