[MlMt] Ghost mailboxes
Randall Gellens
mailmate at randy.pensive.org
Fri May 25 14:51:11 EDT 2018
On 25 May 2018, at 11:27, Bill Cole wrote:
> On 25 May 2018, at 12:55, Randall Gellens wrote:
>
>>> You can use the GUI. Right-click the IMAP account -> "Edit IMAP
>>> Account..." -> "Edit Subscriptions..." and uncheck the phantom
>>> mailbox.
>>
>>
>> I don't see "Edit Subscriptions" under "Edit IMAP Account". There's
>> a pane to fill in the server info, account info, etc.
>
> Yes, and a button in the IMAP section.
>
> See attached image...
Ah, I hadn't noticed that, thanks.
Interestingly, on any account, clicking it results in an error dialog
box:
Mailbox Retrieval Failed
Error: “Reading ended without error.”
>>> The root causes of this are that most IMAP servers don't
>>> sanity-check the "subscriptions" list against the actual list of
>>> mailboxes and that all MUAs for an account share a common
>>> subscription list, so they tend to avoid exerting automatic
>>> arbitrary control over it.
>>
>>
>> I guessed that perhaps MM doesn't refresh the mailbox list after
>> deleting a mailbox.
>
> Yes, after a fashion.
>
> The issue is that there isn't One True Mailbox List, and MM does not
> propagate the changes that it makes to the list of all available
> mailboxes (by deleting a mailbox on the server) to the list of
> mailboxes that are "subscribed" and as a consequence get synchronized
> by MM and displayed to the user.
Admittedly it's been many years since I was active in IMAP protocol
development and server-side work, but to my knowledge, the IMAP protocol
is designed so the client asks the server for a list of mailboxes
(typically using wildcards to get all). This represents the list of
mailboxes that exist (with flags to indicate if they are permitted to
have children, etc.) So, typically, a client periodically refreshes the
list of all mailboxes by walking the mailbox tree and fetching all at
each level, and does so after doing a delete or a move (which
technically is a RENAME).
If I recall correctly from the days when IMAP was being developed,
subscriptions were an afterthought that was glued on to the protocol to
support shared mailboxes. The IMAP protocol specifically allows for
mailboxes that no longer exist to be on a user's subscription list, so a
client should never assume that a subscribed mailbox exists.
I took a peek at RFC 3501 to refresh my memory, and it explains the
reasoning behind non-existent subscribed mailboxes:
The server MUST NOT unilaterally remove an existing mailbox name
from the subscription list even if a mailbox by that name no
longer exists.
Note: This requirement is because a server site can
choose to routinely remove a mailbox with a well-known
name (e.g., "system-alerts") after its contents expire,
with the intention of recreating it when new contents
are appropriate.
--Randall
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freron.com/pipermail/mailmate/attachments/20180525/99404b77/attachment.html>
More information about the mailmate
mailing list