[exim] create_directory, create_file, and maildir_format

Top Page
Delete this message
Reply to this message
Author: Magnus Holmgren
Date:  
To: exim-users
Subject: [exim] create_directory, create_file, and maildir_format
According to section 26.2 of the spec, for maildir delivery, create_file
applies to the target maildir, and create_directory applies to any missing
directories above that target, in the same way that for ordinary mbox files
they apply to the target mbox file and the directory it's supposed to be in,
respectively. Thus "appending" to a maildir (or creating a new one) is
equivalent to appending to an mbox (or creating a new one if it doesn't
exist). At least that's my interpretation.

However, that interpretation seems inconsistent with reality, based on the
following observations, where I have set maildir_format (as well as the other
necessary options) on the standard address_directory transport and try to
deliver a mail to /tmp/foo/ (which is not in any home directory, to make that
clear):

With create_file = inhome, create_directory and /tmp/foo status irrelevant:

defer (-34): tried to create file in /tmp/foo/, but file creation outside
the home directory is not permitted

With no_create_directory, create_file = anywhere, /tmp/foo doesn't exist:

defer (2): No such file or directory: stat() error for /tmp/foo/: No such
file or directory

With no_create_directory, create_file = anywhere, /tmp/foo is an empty
directory:

defer (2): No such file or directory: stat() error for /tmp/foo//tmp: No
such file or directory

With create_directory, create_file = anywhere, /tmp/foo is an empty directory:

Completed

So maybe my interpretation that the target maildir directory should be
created, including its cur, new, and tmp subdirectories, is too far-fetched.
But I'd really expect delivery to an existing maildir to be allowed.
Otherwise, what does "In the case of maildir delivery, it applies to the top
level directory, not the maildir directories beneath" mean?

--
Regards,
Magnus Holmgren
holmgren@???