On Thu, Jul 22, 2010 at 02:35:14PM +0200, Ralf Hildebrandt wrote: > > Consider using RSYNC to COPY the file from the hold queue to the > > incoming queue, using the same file name. > > Once it's there, will it take the same path as the initial mail (on > HOLD) would have taken?
No, because only cleanup(8) and postsuper(1) put messages in the "hold" queue, if you place a mode 700 file in "incoming" it is in the first stage of output processing and can only be delivered, but not put on HOLD (except via postsuper). Note, if rsync propagates file permissions before it copies file contents, an incomplete queue file could be picked up by the queue manager before it is completely written. So it is safer to rsync outside "incoming" (in the same file-system) and then rename into "incoming". The above said, rsync also uses temporary file-names while creating files, and uses rename to finalize the file copy only once the contents are all there, so Wietse's suggestion will likely work, provided rsync's temp file names don't look like Postfix queue-ids (the queue manager incoming directory scans skip filenames that don't look like queue-ids). The code in question is src/global/mail_queue.c:mail_queue_id_ok() which skips any filenames that are not alphanumeric (with '_'). So provided rsync's temp names include some other chars (I think it uses ".tempname" to keep temp files "out of view" while they are being created) there is no need for the intermediate copy... -- Viktor.