Chris Laif wrote:
> The appendfile transport in maildir-mode can be configured to create
> all necessary parent directories. There seems to be a problem with the
> delivery process when the creation of maildirsize files is enabled in
> exim's config.
AFAICS, especially if you use a structure other than what it expects to
encounter/live in.
>
> Please consider the following situation: All mailboxes are located in
> "/var/mail/<user>". Now the very first email for a new user "alice"
> has to be delivered to a subfolder "foo" of that (not yet existant
> user/mailbox). Exim then creates
>
> dir: /var/mail/alice
> dir: /var/mail/alice/.foo
> dir: /var/mail/alice/.foo/tmp
> dir: /var/mail/alice/.foo/new
> dir: /var/mail/alice/.foo/cur
> file: /var/mail/alice/.foo/maildirfolder
>
Is that actually a fully Maildir / Maildir++ compliant structure?
> Having done that, Exim tries to create the maildirsize file. The
> "maildirfolder" file makes Exim step up one level to
> "/var/mail/alice". At this point Exim is not able to create the
> maildirsize file because the "tmp" directory is missing (standard
> maildir logic: create
> "tmp/tmpfile123" and rename that file to "maildirsize"). As a result
> we see in the logs:
>
> defer (2): No such file or directory: while opening or reading
> /var/mail/alice/maildirsize
>
> Maybe it is a good idea to have config option similiar to
> "maildirfolder_create_regex" which specifies a pattern for all new
> directories in which the "tmp/cur/new"-directories should also be
> created.
>
> Chris
>
> There has been some discussion about a related issue:
> http://www.exim.org/mail-archives/exim-users/Week-of-Mon-20060424/msg00133.html
>
The cited reference points out 'words to the effect' - that Exim leaves that up
to your own choice - i.e. - implementation in the routers.
Ergo, one may either directly craft router code to accomplish any of many
'appropriate' storage structures, ownership & privs - or NOT.
If you have not done so, then, yes, you could have an error. But the 'fix' is
to change the router code that creates and uses that structure, not to alter the
Exim engine.
You might, for example, have five to ten routers and use that 'forced' format in
as few as one to three of them even if you implement it.
Bill