On 2006-12-13, at 0036, Rick Widmer wrote:
One of the biggest complaints against vpopmail heard on the qmail mailing list is the fact that it uses files kind of like .qmail files, that are not interpreted by qmail-local, yet it names them .qmail*.
actually, if the file is located in the domain's "home directory" (as listed in the users/assign file), the .qmail-* file IS processed by qmail-local (at least it is on every vpopmail machine i've ever built.) the vdelivermail program only comes into play when qmail- local processes the domain's .qmail-default file.
as for files located within a specific mailbox... that's totally vpopmail's territory, qmail-local never sees those (unless somebody manually creates a users/assign entry which points to that directory, and in that case vpopmail can't really be held responsible for the results.)
I disagree with the author about one thing... I think if both exist, vdelivermail should process .vpopmail files instead of .qmail files.
i think the ones created within a mailbox's directory should be called ".vpopmail-*", while the ones in the domain's directory (which ARE processed by qmail-local) should be left the way they are.
in general i think the idea of using .qmail-{user} files at the domain level is better, simply because it makes for one less process involved in getting the message to the maildir. basically, if qmail- local CAN do the delivery properly, we should allow it to do so. i think the "vdelivermail" program should only be used to handle cases where qmail-local can't work (i.e. mailbox or alias information stored in a database.)
and if vdelivermail finds both a .qmail file and a .vpopmail file within the same mailbox directory, it should throw an error- because the only way that situation would ever arise is if somebody is manually playing with the files, without setting the sticky bit on the directory first, and if somebody is manually playing with the files, there is an assumption that they know what they're doing.
Qmailadmin should read .vpopmail files before .qmail files and delete the .qmail file if it exists when the .vpopmail file is written. Effectively the files will be renamed as they are edited.
there is a possible race condition- if process A is doing a delivery, looks for a ".vpopmail" file, and doesn't find one, then process B takes over and renames a ".qmail" file to ".vpopmail", then process A takes over and looks for a ".qmail" file, then process A will think that no file with either name exists.
i think a safer way to do it would be to have a script which finds and renames the files as needed, and tell the users to only run the script while qmail-send is stopped. if they're upgrading the vpopmail binaries anyway, they will probably be in some kind of maintenance window to start with, and stopping qmail-send won't be a major deal.
Maybe there needs to be a ./configure option to disable the new file name.
something like "--old-dot-qmail-files" maybe? sounds good to me. -------------------------------------------------- | John M. Simpson - KG4ZOW - Programmer At Large | | http://www.jms1.net/ <[EMAIL PROTECTED]> | -------------------------------------------------- | Mac OS X proves that it's easier to make UNIX | | pretty than it is to make Windows secure. | --------------------------------------------------
PGP.sig
Description: This is a digitally signed message part
