[Dovecot] Is this really a user agent issue?

Phil Howard ttiphil at gmail.com
Thu Dec 23 18:26:07 EET 2010


On Thu, Dec 23, 2010 at 10:27, David Warden <warden at geneseo.edu> wrote:
> Out of curiosity, are you using the "autosubscribe" feature of Dovecot LDA
> to automatically subscribe people who whatever new folder the Dovecot LDA
> automatically creates? It looks like this is the -s flag to LDA binary in
> 1.1.3+ or lda_mailbox_autosubscribe in 2.0+ (not sure exactly what point
> release...)

I didn't purposely use it.  I see nothing in /etc/dovecot/dovecot.conf
that suggests that.  I see no -s flag on any running binary.  There is
no -s flag configured for deliver in Postfix's master.cf.  So I
conclude that answer to be "no".


> I don't have a lot of experience with Evolution but I know Thunderbird can
> be difficult when it comes to new folders showing up on the server that it
> didn't create. The best you can do is make sure the client gets
> automatically subscribed to that new folder and hope that the client checks
> the list of subscribed folders (the LSUB IMAP command) eventually. I would
> hope that clicking "check/get new mail" would be enough to trigger that in
> most clients.

I don't know the semantics of this, and would not want to suddenly
change things on users.  Maybe they are doing subscribes on their own
that might highlight what they subscribe to and ignore all else ...
and that doing autosubscribe might interfere with that.

Evolution and Thunderbird seem to be fine with no subscriptions going
on.  On startup they seem to find all the folders.  The issue I'm
encountering (tried only on Evolution since that is what I use right
now) is that when I want to access a folder that was created during
delivery, I cannot.  There is no folder shown and no option to refresh
it (unless doing a subscribe to an as-yet unseen folder would do it,
after which I could then unsubscribe) short of quitting Evolution and
restarting.  Doing "Send/Receive" doesn't refresh (I didn't really
expect it to, but I did try it just in case).  The most obvious option
is doing a right button click on the parent folder and selecting
refresh.  That didn't add the folder, either, so I conclude it only
refreshes the count of emails.  So I tried to create it within
Evolution.  I figured that would at least set up the folder name in
the tree on the left panel.  But, since IMAP reported a failure to
create (because it existed at that time, due to the earlier create
during delivery), Evolution just gave up and did not add the folder.
I believe what it should do when creating a folder fails is to check
to see if that folder already exists, and if so, either add the folder
anyway, or ask the user if the "already created" folder should be
added.

When programming in C, when I want to create a file in a directory,
and want to create the directory if it does not yet exist, what I code
is a mkdir() call with error handling that ignores EEXIST.  The
intended directory name might be something other than a directory.
But I know that open() naming a file in that directory to be created,
will fail if it wasn't a directory.  So I do not need to explicitly
stat() the directory to see if it is a directory or not.  If open()
fails, then I sort out the error to the level that program calls for.
Such a program would create the file in that directory whether the
directory exists or not.  Extending this concept to a program using a
protocol like IMAP ... I don't know if that's beyond the ability of
the application developer(s) to grasp, or not.  But it is the case
that I find very little "goofy logic" in systems and server daemons,
and find a lot of that in GUI applications.  I just didn't want to
jump to even an obvious conclusion in this case, knowing that I did
not know details about IMAP (if I had known IMAP, I probably would
have come to some conclusion, quickly).


-- 
sHiFt HaPpEnS!


More information about the dovecot mailing list