Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

There was a problem

You must be a member of this account.

IMAP server directory

#267

Hi. Most IMAP clients allow you to specify the (sub)directory
on the server. Our server config requires this, but I do not
see a setting for it.

Is there a way to set this?

Thanks!

Reported by Leigh Stoller · July 18th, 2012 @ 01:19 AM

State: new
Milestone: none
Assigned to: benny benny

Activity

  1. benny
    benny

    The short answer is no. The most common use of the prefix is to be able to avoid that all mailboxes are inside INBOX, but this is handled automatically by MailMate (and can be explicitly controlled in the “Edit Subscriptions” interface).

    The long answer is yes. The current beta of MailMate (see the Software Update preferences pane) has a hidden setting which provides more flexibility (no GUI though). The following is from the manual:


    Some users may need to specify an IMAP namespace prefix explicitly. A known example is UW IMAP servers which return a set of namespaces similar to the following:

    NAMESPACE (("" "/")("#mhinbox" NIL)("#mh/" "/")) (("~" "/")) (("#shared/" "/")("#ftp/" "/")("#news." ".")("#public/" "/"))
    

    If MailMate uses the above as is then it is likely that all files in the home catalog of the user are fetched as IMAP mailboxes. This is a server configuration problem and it is obviously a serious security issue. Nevertheless, if you need to override the NAMESPACE response from the server then you can add the following line to the Sources.plist file in ~/Library/Application Support/MailMate:

    namespaceResponse = '(("MailboxPrefix" "/")) NIL NIL';
    

    You must replace MailboxPrefix with the name of the folder with your IMAP mailboxes.


    Perhaps I should elaborate on the security problem. If the server provides access to non-IMAP folders then it may be possible to use an email client (or a specialized application for IMAP access) to retrieve other files in your home directory on the server. In other words, if your IMAP account is compromised then your entire home directory may be compromised as well. The fix is to properly configure the IMAP server.

    Your problem may be different though. You are welcome to provide details -- in particular if the above is not a solution for you.

    July 18th, 2012 @ 05:18 AM

  2. Leigh Stoller
    Leigh Stoller

    Thanks. Our server uses Dovecot, and it has the same problem as the UW server.
    I set the namespace to:

    namespaceResponse = "((\"IMAP\" \"/\")) NIL NIL";
    

    and it correctly gets set set of mailboxes from that folder, but then
    I get the following popup. It keeps popping it up over and over. Never
    seen this before from any other mail client. See attached screenshot.

    July 18th, 2012 @ 02:06 PM

  3. benny
    benny
    • State changed from new to resolved

    The error is only implicitly related to MailMate. The server has some number of maximum connections allowed for a user and you reach this maximum for two reasons:

    1. You are probably running more than one email client and maybe you are also using multiple devices (with email clients) for the same account.

    2. MailMate uses 3 connections to the server by default.

    The error reported is not standardized, so there is no safe way for MailMate to detect the problem and decrease the number of connections (and maybe 1 is still too many).

    The reason that MailMate reports the error and not the other email clients is that MailMate is probably the last application to be launched.

    It is possible to manually decrease the number of connections used by MailMate, but the best fix would be to increase the number of allowed connections. I think too many servers are too conservative in this regard.

    Nevertheless, if you quit MailMate and edit the following file ~/Library/Application Support/MailMate/Sources.plist then you can add the following key/value pair to change the behavior of MailMate:

    maxNumberOfConnections = 1;
    

    I need a better solution to this problem. I could make a heuristic detecting responses from Dovecot, UW IMAP, Gmail, etc., but that would just be a hack. I could also make a GUI for the above, but that still requires that the user understands what the problem is. Finally, I could decrease the default to 1 to make it less likely to fail, but that would hurt performance/responsiveness in certain scenarios.

    July 18th, 2012 @ 02:42 PM

  4. Leigh Stoller
    Leigh Stoller

    You are probably running more than one email client and maybe you are also using multiple devices (with email clients) for the same account.

    Yep, that is the problem. I increased the number on our server and now thing are
    running okay.

    However, there is still a problem. When I go to edit the subscription list, the prefix
    appears to be ignored, and I get a listing of my entire home directory, which is huge!

    I know that our server setup is wrong on this, but we have some users who rely on it.

    July 18th, 2012 @ 03:00 PM

  5. benny
    benny
    • State changed from resolved to accepted

    Correct. The subscriptions editor does not respect the namespaceResponse setting. I tried to fix this (I cannot test it) and I've built a test release (r2970). Hold down ⇧ when clicking “Check Now” in the Software Update preferences pane. (Anyone else reading this should be aware that test releases can some times be very buggy -- handle with care.)

    Let me know whether or not it works for you.

    July 18th, 2012 @ 03:31 PM

  6. benny
    benny

    Sorry, I should have written ⌥ instead of ⇧.

    July 18th, 2012 @ 03:40 PM

  7. Leigh Stoller
    Leigh Stoller

    Yep, I figured that out ... but no change in behaviour.

    July 18th, 2012 @ 03:43 PM

  8. benny
    benny

    Ok, it was a apparently a quick non-fix. I don't have time to investigate it further right now, but I'll update this ticket when I've had time to look into it.

    July 18th, 2012 @ 03:52 PM

  9. benny
    benny
    • State changed from accepted to fixcommitted

    A new test release is available. I verified it worked using a “[Gmail]” prefix for a Google account. Sorry about the bogus fix.

    I know you have users relying on the default namespace response, but maybe these users do not know that their entire home directory is viewable via IMAP... I'm no expert on the subject, but maybe this note from the Dovecot site is useful.

    July 19th, 2012 @ 09:48 AM

  10. benny
    benny
    • State changed from fixcommitted to fixreleased

    November 9th, 2012 @ 12:16 PM

  11. Ben Hood
    Ben Hood

    I'm sorry but I don't get how to set this. We're using cyrus and we have a whole bunch of shared folders on the server side. The private folders are subfolders under INBOX. The shared folders come under a prefix called shared/projects. MailMate seems to handle the subfolders of INBOX as expected, but if I set the following in the Sources.plist:

    namespaceResponse = '(("shared/projects" "/")) NIL NIL';
    

    I lose everything other than what is directly in the INBOX.

    In addition, restarting MailMate and getting it to re-read this setting seems to cost an awful lot of system resources.

    What am I doing wrong here?

    July 31st, 2013 @ 02:15 PM

  12. Ben Hood
    Ben Hood

    Googling a bit further, I note the the following setting might look like what I need:

    defaults write com.freron.MailMate MmNonPrivateNamespacesEnabled -bool YES
    

    This appears to include the shared/projects project in the MM sidebar, but unfortunately it causes MM to beach ball, so I'm sure that this is the solution.

    July 31st, 2013 @ 02:20 PM

  13. benny
    benny

    (Sorry about the late response.)

    I assume you found the manual page. I do ask for feedback, so thanks for writing here.

    The multiple changes to the namespace settings trigger MailMate to fetch mailboxes and then delete mailboxes from its local cache. I guess the beach ball is related to this work (although ideally it should not happen). If it doesn't stop then it might be better to start over by quitting MailMate and then delete these folders:

    ~/Library/Application Support/MailMate/Messages
    ~/Library/Application Support/MailMate/Database.noindex
    ~/Library/Application Support/MailMate/Attachments
    

    Then launch MailMate and it should have a clean start at fetching the messages.

    How many messages are in these shared IMAP folders? MailMate does not perform well if you add more than a few 100K messages (MailMate is fully offline and fetches and indexes everything). If this is a problem then the only option is to use “Edit Subscriptions” in the IMAP account preferences to only subscribe to the shared mailboxes you primarily need.

    Again, thanks for the feedback.

    August 1st, 2013 @ 01:03 PM

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.