OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
Re: "HOLD" for customer email...clarification

From: Magnus Bäck (magnusdsek.lth.se)
Date: Sun Jan 29 2006 - 07:40:13 CST


On Sunday, January 29, 2006 at 14:09 CET,
     Michael Nguyen <michaelntwentyten.org> wrote:

> So.... I have these delinquent, non-paying customers. What I'd like
> to do is hold onto their email until they pay up. Here's what I have:
>
> /etc/postfix/pastdue
> sandycat.com hold:
>
> /etc/postfix/main.cf
> ...
> transport_maps = hash:/etc/postfix/pastdue, proxy:mysql:transport
> ...

HOLD is not a transport name, it's an access map action. You should use
it in a check_recipient_access restriction. Do note, however, that the
message as a whole is held. That is, you risk holding up the mail of
paying customers.

What you could do instead is create an extra Postfix instance that acts
as a sink for non-paying customers and use the transport table to direct
messages to non-paying customers' domains to that instance. Configure
the sink-instance to have unlimited queue lifetime and use
check_recipient_access to put messages on hold. When a customer finally
pays up, remove their domain(s) form the hold table, release the message
from the queue and let the message go back to the main server. You still
have the problem that the hold granularity is per-message, but the only
thing you'd be risking then is releasing messages for a recipient that
hasn't yet paid. This is probably not very likely, and if it happens
it's harmless.

[...]

--
Magnus Bäck
magnusdsek.lth.se