On Thu, 13 Mar 2003, Andreas Aardal Hanssen wrote:

> On Thu, 13 Mar 2003, Charlie Brady wrote:
> >On Thu, 13 Mar 2003, Andreas Aardal Hanssen wrote:
> >> Hey, Charlie!
> >> On Thu, 13 Mar 2003, Charlie Brady wrote:
> >But INBOX *is* special. It's special in two ways - both required by RFC
> >2060. One is that all case permutations (inBoX, etc) map to the same
> >mailbox, and the other is that it must be "the primary mailbox for this
> >user on this server". If the system is running qmail, there is already a
> >system default inbox - probably ./Maildir. So imapd should use the same
> >path. 
> 
> Agreed that INBOX is special in the IMAP protocol, but that does _not_
> imply that it should be treated much differently in the file system.

Agred.

> I beleive that having a direct mapping from Maildir INBOX/ to IMAP INBOX
> is a good thing.

I'd like to head your reasoning.

This is what I believe. 

Each system has a defined "primary" mailbox for users. This mailbox is 
known as INBOX, inbox, and any other case permutation.

Other than this one mailbox, all other mailboxes which the user may have 
are in one of three categories:

 - can't be addressed via IMAP (e.g the system wide imap root is set to 
 ~/mail, but the folder is not contained within ~/mail)

 - can be addressed via IMAP, but are hidden by "INBOX". (e.g. 
 ~/mail/Inbox) These are the ones you propose telling the admin about - I 
 agree that's a good idea.

 - can be addressed and accessed via IMAP.

> Any permutation of InBoX in the file system would be ignored if "." is a
> Maildir, but if "." is not a Maildir then the first come first serve
> principle would have to apply.

> Again, the logs would inform the
> administrator of ignored folders if a user has defined both INBOX and
> Inbox.

Here is one area where we differ. I think the logs should notify about 
both INBOX and Inbox. I see no reason that the primary mailbox of the user 
should be called INBOX in the file system. INBOX is a special IMAP name - 
on my system I want it to refer to the maildir ~/Maildir/. Both INBOX and 
Inbox maildirs will be hidden by INBOX, so I want imapd to ignore and 
report both of them.

> >If, OTOH, we interpret "the primary mailbox for this user on this server"
> >to mean the user-specific primary mailbox, then we have a difficult
> >problem - we have to find that mailbox. We don't want to be reading and
> >interpreting .qmail files to do that. We don't want to go there.
> 
> We can assume that any administrator that wants to enforce this structure
> on all his users would tell qmail-local to deliver to mail/INBOX/ by
> default. We can further assume that any user who would want to enforce
> this structure in an individual basis would be smart enough to update
> .qmail.

Perhaps. Nothing I've said precludes the primary mailbox from being 
configured to mail/INBOX/ - but I'd recommend the traditional ~/Maildir/ - 
it will look exactly the same to an IMAP client.

> >> I want INBOX to be a mailbox just like all other mailboxes.
> >It is, other than that it is the primary mailbox, which none of the others 
> >is.
> 
> It's not like all other mailboxes in this schema if
> 
>   1) Its name does not map 1-1 to it's LIST name in IMAP

It doesn't need to.

>   2) It does not recide inside a file system directory, rather its
>      "directory" is ".".

"." is a file system directory.

>   3) It is not a leaf node.

It can be. And I don't think that it matters. Refer to my earlier 
discussion of maildirs within maildirs.

> Dale suggested that ".", INBOX, and then "Maildir" be tested to find the
> qualified IMAP INBOX. I'm proposing an alternative to the standard
> depository using Dale's ideas, but allowing the entire mailbox depot to
> reside in one location with no special cases.

What I am suggesting doesn't preclude that. The policy for an installation 
can be expressed in two parameters - the INBOX location, and the root for 
mail folder location. These can overlap, or not overlap, as the admin 
chooses.

Let's call these parameters A and B.

The use of A should be obvious. It's where imapd should look for messages 
when INBOX is selected, etc. 

B will be the location to start looking for other folders. A wildcard list
with show INBOX, plus all the folders found searching from B, *except* for
any which will alias to INBOX once case is collapsed.

> >> >[Why would "mail/INBOX/" be preferred to "Maildir/" for INBOX?]
> >Did you have an answer for this?
> 
> Yes, I did. As we have discussed earlier, Maildir++ adds Maildirs inside a
> Maildir. This scheme suggests an alternative solution where all mailboxes
> are standard (Not Maildir++) Maildirs, and organized in such a way that
> there are no real special cases in the server when converting an IMAP 
> mailbox name to a filesystem location.

I follow you so far, although I don't think the Maildir definition 
precludes other Maildirs inside.
> 
> If I understand you correctly, what you don't like about this idea is
> having to change Maildir/ being the equivalent of INBOX.

Yes, any compulsory change goes against the grain. My motto comes from 
Einstein - "Keep it as simple as possible - but no simpler". Unless this 
restraint is necessary, then it should be avoided. I don't think it is 
necessary.

> This you can do
> in two ways. One - you can set Maildir/ to be your root depository, having
> "." server as INBOX, and having the Maildir/INBOX/ folder be ignored.

This sounds like A = Maildir/ and B = Maildir/ in my scheme. Maildir/INBOX 
would be ignored, as would Maildir/InBoX, etc.

> Two - you can symlink your Maildir/ folder into mail/INBOX.

You could, but I don't think it is necessary. Is this just to avoid 
telling imapd explicitly where the inbox is? 

I don't have any problem with giving imapd two pieces of information, 
because they are different. One is the location of the system inbox, and 
they other is the location of the user defined folder collection. These 
can be different, and I don't think we gain anything by constraining them 
to be sepecified by a single datum.

> This would ofcourse mean that you would have to move your Maildir++
> submailboxes out of the actual Maildir/ folder and into the root of the
> mailbox depository.

Why? I haven't see any incompatibility between Maildir and Maildir++ which 
would make this necessary.

--
Charlie

Reply via email to