Ezsra,
You may need to examine your mailboxes.db to see what the system is actually doing.  Have you made any changes to 'altnamespace:'?

For more information on the various namespaces, consult this document:

   https://www.cyrusimap.org/3.0/imap/concepts/features/namespaces.html

To take a look at mailboxes.db, use the ctl_mboxlist(8) command, such as (paths as on my server):

   $ sudo -u cyrus /usr/lib/cyrus/bin/ctl_mboxlist -d

You'll see that in the mailboxes.db, the mailbox is still stored with the dot delimiter, and a carrot "^" is used to represent any literal dot characters present in a mailbox name.  For example, "user.nic.my^mailbox" in the DB represents "user/nic/my.mailbox" as seen via protocol.

It sounds to me like you upgraded without taking the upgrade steps in the necessary order, so your installation may be broken at this point.  If you're still in the testing phase, you may well find it easier to simply start over; wipe the data on the new server and re-sync it (however you did that).  Otherwise you might be able to correct with a reconstruct(8) command (read the docs, and mentions of reconstruct in the upgrade docs, too).

   By the way, the version you're using, 3.07, is fairly old, even for
   the 3.0 branch.  You may want to look for more recent packages, now,
   before making a bunch more work for yourself.  The most recent
   version in 3.0 is 3.0.14, or jump to 3.2.4.

Cheers,
    -nic


On 10/16/20 10:39 AM, Ezsra McDonald wrote:
Nic,

I am confused about unixhierarchysep.

I set it to off. LMTP could not find my testuser inbox when I created the account user.testuser.

I set it to on. It still could not find the inbox which I expected.

I left it set to on and created a new user, user/testuser. Now LMTP seems happy. I don't mind this setup however we would have to update our inhouse tools to handle this.

Any idea why when unixhierarchysep is off I can't use the user.testuser syntax?

Progress at least but I prefer not to make the developers modify all the code for inhouse tools.

-Ez

On Fri, Oct 16, 2020 at 10:09 AM Nic Bernstein <[email protected] <mailto:[email protected]>> wrote:

    Ezsra,
    Have you read and followed all of the steps outlined in the
    Upgrade documentation for 3.0?  You can find them here:

        https://www.cyrusimap.org/3.0/imap/download/upgrade.html

    [Note: use that link, since the current stable version is 3.2, and
    simply navigating the website will lead you to the newer version,
    not the 3.0 which you're using.]

    If you haven't done these steps, as described, you may need to
    start over.  Pay special attention to steps 5 & 6, and follow the
    links within for additional information on settings which have
    changed, like 'unixhierarchysep:' and 'altnamespace:'.

    Cheers,
        -nic

    On 10/16/20 9:56 AM, Ezsra McDonald wrote:
    Hi Nic!

    Here is some of the information you mentioned.

    We use the RPM packages from the yum repositories.

    Old Server:
    OS: Oracle Linux 6.10
    Postfix: postfix-2.6.6-8
    Cyrus: cyrus-imapd-2.3.16-15

    New Server:
    OS: Centos 8.2.2004
    Postfix: postfix-3.3.1-12
    Cyrus: cyrus-imapd-3.0.7-16

    Permissions on the inbox:
    I did not have the "anyone p" ACL. I added that. I also add the
    "a" to the testuser ACL. Neither of these helped. I also gave
    Cyrus the "All" ACLs on the inbox. This made no difference.
    localhost> lam user.testuser
    cyrus lrswipkxtecda
    testuser lrswipkxtecda
    anyone p

    We do not use the autocreate feature. We create the accounts
    using an inhouse tool.



    On Thu, Oct 15, 2020 at 7:07 PM Nic Bernstein
    <[email protected] <mailto:[email protected]>> wrote:

        Ezsra,
        You haven't told us which versions of Cyrus you both were
        using, on the old server, and are now using, on the new
        server.  A lot of things have changed between v2.X and 3.X,
        including many "default" settings.  Also, whose builds of
        Cyrus are you using?  Did you build your own, or did they
        come from repositories, or what?  Again, this matters both
        for the old and new versions.

        Lastly, what are the permissions on the mailbox involved?  As
        the admin user, use the "lam user/<username>" command in
        'cyradm' to check this.  The user's 'inbox',
        'user/<username>' should have permissions like this:

            localhost> lam user/testuser
            anyone p
            testuser lrswipcda

        That "anyone p" is necessary for Posting permissions,
        allowing program delivery to the mailbox.

        And out of curiosity, does the mailbox actually exist?  By
        default, newer Cyrus IMAPd do not autocreate mailboxes, or at
        least doesn't do so in the same way it used to.  You mention
        EL6 and CentOS.  Older Redhat-ish Cyrus packages included
        their own autocreate, which I believe was enabled by
        default.  Now, in 3.X, there's a new mechanism, and by
        default it's not enabled. Your configurations do not show any
        autocreate settings.

        Check the man page for imapd.conf(5) for details on this.  In
        particular, search for this:

             autocreate_post: 0
                       If enabled, when lmtpd(8) receives an incoming mail for 
an INBOX that does not exist, then the INBOX is
                       automatically created by lmtpd(8) and delivery of the 
message continues.

        Also look into the 'autocreate_inbox_folders' setting, which
        may hold a list of folders, such as Drafts, Sent, Trash, etc.
        to create along with Inbox.

        Cheers,
            -nic

        On 10/15/20 2:11 PM, Ezsra McDonald wrote:
        Well, I did not make any discoveries. I was trying not to
        make everyone look at my configs but that seems to be my
        next step.

        FILE: /etc/saslauthd.conf
        ------------------------------------------------------
        ldap_servers: ldap://ldap.example.com <http://ldap.xample.com>
        ldap_search_base: ou=people,dc=example,dc=com
        ldap_filter: uid=%U

        FILE: /etc/cyrus.conf
        ------------------------------------------------------
        START {
          # do not delete this entry!
          recover       cmd="ctl_cyrusdb -r"
        }
        SERVICES {
          # add or remove based on preferences
          imap          cmd="imapd" listen="imap" prefork=5
          imaps         cmd="imapd -s" listen="imaps" prefork=1
          # these are only necessary if receiving/exporting usenet
        via NNTP
          # these are only necessary if using HTTP for CalDAV,
        CardDAV, or RSS
          # at least one LMTP is required for delivery
          lmtpunix      cmd="lmtpd"
        listen="/var/lib/imap/socket/lmtp" prefork=1
          # this is only necessary if using notifications
        }
        EVENTS {
          # this is required
          checkpoint    cmd="ctl_cyrusdb -c" period=30
          # this is only necessary if using duplicate delivery
        suppression,
          # Sieve or NNTP
          delprune      cmd="cyr_expire -E 3" at=0400
          # Expire data older than 28 days.
          deleteprune   cmd="cyr_expire -E 4 -D 28" at=0430
          expungeprune  cmd="cyr_expire -E 4 -X 28" at=0445
          # this is only necessary if caching TLS sessions
          tlsprune      cmd="tls_prune" at=0400
        }
        DAEMON {
          # this is only necessary if using idled for IMAP IDLE
        }

        FILE: /etc/cyrus.conf
        ------------------------------------------------------
        admins: cyrus
        configdirectory: /var/lib/imap
        proc_path: /var/lib/imap/proc
        mboxname_lockpath: /var/lib/imap/lock
        duplicate_db_path: /var/lib/imap/db/deliver.db
        ptscache_db_path:  /var/lib/imap/db/ptscache.db
        statuscache_db_path: /var/lib/imap/db/statuscache.db
        tls_sessions_db_path: /var/lib/imap/db/tls_sessions.db
        defaultpartition: default
        partition-default: /var/spool/imap
        sievedir: /var/lib/imap/sieve
        lmtpsocket: /var/lib/imap/socket/lmtp
        idlesocket: /var/lib/imap/socket/idle
        notifysocket: /var/lib/imap/socket/notify
        syslog_prefix: cyrus
        hashimapspool: true
        virtdomains: off
        popminpoll: 1
        conversations: 1
        conversations_db: twoskip
        specialusealways: 1
        allowplaintext: 0
        sasl_pwcheck_method: saslauthd
        sasl_auto_transition: no
        tls_server_cert: /etc/pki/cyrus-imapd/cyrus-imapd.pem
        tls_server_key: /etc/pki/cyrus-imapd/cyrus-imapd.key
        tls_client_ca_dir: /etc/ssl/certs
        tls_session_timeout: 1440
        tls_ciphers:
        TLSv1+HIGH:!aNULL:!eNULL:!LOW:!MD5:!EXPORT:!DES:!3DES:!RC4:@STRENGTH
        tls_prefer_server_ciphers: 1
        tls_versions: tls1_2
        allowanonymouslogin: no
        serverinfo: off

        *Test login results:*

        Test SaslAuthd*
        *
        ------------------------------------------------------
        ~$ testsaslauthd -u testuser -p 'NOT_FOR_DISPLAY'
        0: OK "Success."

        Test imap
        ------------------------------------------------------
        ~$ imtest -m login -u testuser -a testuser -t "" localhost
        S: * OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE STARTTLS
        LOGINDISABLED AUTH=GSS-SPNEGO AUTH=GSSAPI SASL-IR] server ready
        C: S01 STARTTLS
        S: S01 OK Begin TLS negotiation now
        verify error:num=18:self signed certificate
        TLS connection established: TLSv1.3 with cipher
        TLS_AES_256_GCM_SHA384 (256/256 bits)
        C: C01 CAPABILITY
        S: * CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL
        RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS
        NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY
        CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ
        SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT
        THREAD=REFERENCES THREAD=REFS ANNOTATEMORE
        ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS
        LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE
        MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1
        X-REPLICATION URLAUTH URLAUTH=BINARY AUTH=GSS-SPNEGO
        AUTH=GSSAPI AUTH=PLAIN AUTH=LOGIN SASL-IR XCONVERSATIONS
        COMPRESS=DEFLATE X-QUOTA=STORAGE X-QUOTA=MESSAGE
        X-QUOTA=X-ANNOTATION-STORAGE X-QUOTA=X-NUM-FOLDERS IDLE
        S: C01 OK Completed
        Please enter your password:
        C: L01 LOGIN testuser {9}
        S: + go ahead
        C: <omitted>
        S: L01 OK [CAPABILITY IMAP4rev1 LITERAL+ ID ENABLE ACL
        RIGHTS=kxten QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS
        NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY
        CATENATE CONDSTORE ESEARCH SEARCH=FUZZY SORT SORT=MODSEQ
        SORT=DISPLAY SORT=UID THREAD=ORDEREDSUBJECT
        THREAD=REFERENCES THREAD=REFS ANNOTATEMORE
        ANNOTATE-EXPERIMENT-1 METADATA LIST-EXTENDED LIST-STATUS
        LIST-MYRIGHTS LIST-METADATA WITHIN QRESYNC SCAN XLIST XMOVE
        MOVE SPECIAL-USE CREATE-SPECIAL-USE DIGEST=SHA1
        X-REPLICATION URLAUTH URLAUTH=BINARY LOGINDISABLED
        AUTH=GSS-SPNEGO AUTH=GSSAPI AUTH=PLAIN AUTH=LOGIN
        XCONVERSATIONS COMPRESS=DEFLATE X-QUOTA=STORAGE
        X-QUOTA=MESSAGE X-QUOTA=X-ANNOTATION-STORAGE
        X-QUOTA=X-NUM-FOLDERS IDLE] User logged in
        SESSIONID=<cyrus-422568-1602786511-1-7349358803894201420>
        Authenticated.
        Security strength factor: 256
        ^CC: Q01 LOGOUT
        Connection closed.

        Test LMTP
        ------------------------------------------------------
        ~$ sudo -u postfix swaks --to [email protected]
        <mailto:[email protected]> --socket
        /var/lib/imap/socket/lmtp --protocol LMTP
        [sudo] password for XXXXXXXX:
        === Trying /var/lib/imap/socket/lmtp...
        === Connected to /var/lib/imap/socket/lmtp.
        <-  220 XXXXXXXXXXXXXXXXXXXXXXXXXX server ready
         -> LHLO XXXXXXXXXXXXXXXXXXXXXXXXXX
        <-  250-XXXXXXXXXXXXXXXXXXXXXXXXXX
        <-  250-8BITMIME
        <-  250-ENHANCEDSTATUSCODES
        <-  250-PIPELINING
        <-  250-SIZE
        <-  250-AUTH EXTERNAL
        <-  250-IGNOREQUOTA
        <-  250 Ok
        SESSIONID=<cyrus-422719-1602786735-1-4293443568200236992>
         -> MAIL FROM:<postfix@XXXXXXXXXXXXXXXXXXXXXXXXXX>
        <-  250 2.1.0 ok
         -> RCPT TO:<[email protected] <mailto:[email protected]>>
        <** 550-Mailbox unknown.  Either there is no mailbox
        associated with this
        <** 550-name or you do not have authorization to see it.
        <** 550 5.1.1 User unknown
         -> QUIT
        <-  221 2.0.0 bye
        === Connection closed with remote host.


        *Notes*:
        I did notice a difference in the LMTP response from our
        current production system. The current production system
        includes the following in the response:

        <-  250-STARTTLS

        I do not see that on the new system (Response shown above)
        with the same configuration. Curious why or if that has
        anything to do with it. I am using a self-signed cert on the
        new system for testing purposes. Is that why? Do I need to
        tell LMTP to accept the cert somehow?

        Thanks

        -Ez

        On Thu, Oct 15, 2020 at 9:32 AM Ezsra McDonald
        <[email protected] <mailto:[email protected]>>
        wrote:

            Sebastian,
            Thank you for the response.

            I have never heard of this tool but it looks
            interesting. I will give it a try.

            Will let you all know if I find anything.

            -Ez


            On Thu, Oct 15, 2020 at 9:28 AM Sebastian Hagedorn
            <[email protected] <mailto:[email protected]>>
            wrote:


                Am 15.10.20 um 15:49 schrieb Ezsra McDonald:
                > I wonder if there is a way to test LMTP manually
                to verify LMTP can see
                > the imap accounts? I have not done much with LMTP
                because it always
                > worked for us in the past.

                My favorite tool for mail delivery testing is swaks.
                You can test LMTP
                this way:

                swaks --to YOUR-TEST-USER --socket
                /var/lib/imap/socket/lmtp --protocol LMTP

--     .:.Sebastian Hagedorn - Weyertal 121 (Gebäude
                133), Zimmer 2.02.:.
                                 .:.Regionales Rechenzentrum (RRZK).:.
                   .:.Universität zu Köln / Cologne University - ✆
                +49-221-470-89578.:.


-- Nic [email protected] <mailto:[email protected]>
        https://www.nicbernstein.com
        https://www.linkedin.com/in/nic-b-26577a178/

    *Cyrus <https://cyrus.topicbox.com/latest>* / Info / see
    discussions <https://cyrus.topicbox.com/groups/info> +
    participants <https://cyrus.topicbox.com/groups/info/members> +
    delivery options
    <https://cyrus.topicbox.com/groups/info/subscription> Permalink
    
<https://cyrus.topicbox.com/groups/info/T11ac789bb1e97f39-M5168df4341fd5ff249bd1f81>


-- Nic [email protected] <mailto:[email protected]>
    https://www.nicbernstein.com
    https://www.linkedin.com/in/nic-b-26577a178/


--
Nic Bernstein                               [email protected]
https://www.nicbernstein.com
https://www.linkedin.com/in/nic-b-26577a178/


------------------------------------------
Cyrus: Info
Permalink: 
https://cyrus.topicbox.com/groups/info/T11ac789bb1e97f39-M9a6ff2d8d3d6e5029c714f29
Delivery options: https://cyrus.topicbox.com/groups/info/subscription

Reply via email to