On Tue, May 29, 2012 at 03:54:19PM +0200, Frank Bonnet wrote:

> I have a request from staff here.
> 
> They need to manually post personalized emails to around 100 professors
> the person who will send those emails wants to verify each email before
> sending it but all emails have to be send at the same time for
> administratives reasons ...
> 
> Is it possible to define a temporary postfix spool queue for that
> usage to let
> emails stack in it , then when all emails have been sent and have the OK
> from staff push the button to send all emails at once ?

Yes, definitely, just create a Postfix instance in which all mail
is placed on hold. Then release when ready via:

        # postsuper -H ALL hold         # Release from "hold" to "deferred"
        # postqueue -f                  # Flush the queue

The hard part is routing selected mail into that instance, either
the senders can use the custom Postfix as their submission service
(custom MUA configuration), or you need to route all mail with a
custom header or subject tag or sender address, ... to the special
Postfix instance via header_checks or check_sender_access.

A custom MUA is likely better. You should also consider implementing
VERP for bounce processing, this can be done via a "simple"
content filter that invokes sendmail(1) with the appropriate option
when re-queueing the message. Place messages on hold downstream of
the filter.

An advanced (SMTP) filter is more efficient, but is more code if
you don't already have an engine that does this.

I've had occasion to implement exactly what you describe (on a
larger scale) and created the initial implementation of Postfix
SMTP connection caching to efficiently handle the delivery of a
burst of pre-queued mail.  The throughput was reasonably impressive,
~300 msgs/sec per sending machine, with some of the larger ESPs
receiving over 100 msgs/sec.

-- 
        Viktor.

Reply via email to