Navigation

    Kopano
    • Register
    • Login
    • Search
    • Categories
    • Get Official Kopano Support
    • Recent
    Statement regarding the closure of the Kopano community forum and the end of the community edition

    SmartForward - itemid in ComposeMail object is changed

    Z-Push when using other backends
    2
    11
    508
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • liverpoolfcfan
      liverpoolfcfan last edited by liverpoolfcfan

      Replying to my own message. The issue is in SendMail.php at line 114 - adding debugs before and after shows

      11/09/2020 10:45:25 [22328] [ERROR] SendMail(): Item id while replying or forwarding message:'62635aaf-db95-42a1-a74b-9e17fc9d1784:209142'
      11/09/2020 10:45:25 [22328] [ERROR] SendMail(): Item id while replying or forwarding message:'209142'
      
      
                  if (isset($sm->source->itemid)) {
      ZLog::Write(LOGLEVEL_ERROR, sprintf("SendMail(): Item id while replying or forwarding message:'%s'", $sm->source->itemid));
                      list(, $sk) = Utils::SplitMessageId($sm->source->itemid);
                      $sm->source->itemid = $sk;
      ZLog::Write(LOGLEVEL_ERROR, sprintf("SendMail(): Item id while replying or forwarding message:'%s'", $sm->source->itemid));
                  }
      
      

      What is the reason for this SplitMessageId?

      1 Reply Last reply Reply Quote 0
      • Manfred
        Manfred Kopano last edited by

        Hi @liverpoolfcfan,

        @liverpoolfcfan said in SmartForward - itemid in ComposeMail object is changed:

        What is the reason for this SplitMessageId?

        Because it is folderid:messageid and folderid is in the FolderId tag (saved as $sm->source->folderid).

        Manfred

        1 Reply Last reply Reply Quote 0
        • liverpoolfcfan
          liverpoolfcfan last edited by liverpoolfcfan

          @Manfred said in SmartForward - itemid in ComposeMail object is changed:

          Because it is folderid:messageid and folderid is in the FolderId tag (saved as $sm->source->folderid).

          @Manfred That might be true for Kopano and/or Exchange but is not necessarily true for other email servers. In zimbra for instance, you can accept a share of another user’s mail folder. You will get a folder alias to that folder that is local to your user. However, if you list the mail items in there, they are presented to you as user_guid:item_id. You cannot access individual emails as your_folder_alias:item_id - you must use user_guid:item_id

          You can see this in the log extract above. My local alias for the shared folder is FL0-2 but the mail item is identified as 62635aaf-db95-42a1-a74b-9e17fc9d1784:209142 which contains the actual user_guid of the owner and the item number - 209142 in this case.

          If the item were in a folder owned by the user themselves, the item_id would simply be returned as 209142

          1 Reply Last reply Reply Quote 0
          • Manfred
            Manfred Kopano last edited by

            Hi @liverpoolfcfan,

            so the issue is that zimbra uses the same “:” separator for user_guid and item_id. Is it possible to use a different one in Zimbra? Or is it possible for the zimbra backend to match the folder alias to user_guid if necessary? That would solve your issue.

            Moving the split into backends goes against the logic as the backend themselves don’t care and don’t need the short backend id. Then also all the current backends would need to do the splitting themselves. I’m aware of kopano and imap backends and could change them, but everyone else who’s not hosting their email backend at z-hub.io (e.g. egroupware) would need to adapt them.

            I know that it would be a simple change but due to its high impact that would be something for a major version (3.0 or 2.7.0).

            Z-Push 2.6.0 is almost out, so I wouldn’t like to do such a change so close to the release.

            Manfred

            liverpoolfcfan 1 Reply Last reply Reply Quote 0
            • liverpoolfcfan
              liverpoolfcfan last edited by

              @Manfred It is not possible to change the separator in zimbra. It is what it is.

              I think I can identify the user_guid from the folder alias to workaround the issue. I will let you know.

              1 Reply Last reply Reply Quote 0
              • liverpoolfcfan
                liverpoolfcfan @Manfred last edited by

                @Manfred In the example I provided above you can see that there is no visible correlation between the FolderId and the ItemId.

                Is it the case that for Kopano/IMAP that you would see the same FolderId prepended to the ItemID in the incoming XML for the SmartReply/SmartForward request?

                If you refer to this as a long form ItemID and short form ItemID, is the API not capable of accepting both?

                Manfred 1 Reply Last reply Reply Quote 0
                • Manfred
                  Manfred Kopano @liverpoolfcfan last edited by

                  Hi @liverpoolfcfan,

                  @liverpoolfcfan said in SmartForward - itemid in ComposeMail object is changed:

                  @Manfred In the example I provided above you can see that there is no visible correlation between the FolderId and the ItemId.

                  And there’s also no mapping in zimbra backend between the folderid and user_guid?

                  Is it the case that for Kopano/IMAP that you would see the same FolderId prepended to the ItemID in the incoming XML for the SmartReply/SmartForward request?

                  Yes, the folderid is prepended to the itemid.

                  If you refer to this as a long form ItemID and short form ItemID, is the API not capable of accepting both?

                  Of course it would be possible to leave the ComposeMail:ItemId as is in the $sm object and let the backends handle $sm->source->itemid as they like. However Kopano and IMAP backends (and maybe also some other custom backends) would then need to split $sm->source->itemid in folderid and itemid themselves which is also not ideal. As I said in my previous post it would be a change for a major version only if we decide to do that.

                  Manfred

                  liverpoolfcfan 1 Reply Last reply Reply Quote 0
                  • liverpoolfcfan
                    liverpoolfcfan @Manfred last edited by liverpoolfcfan

                    @Manfred said in SmartForward - itemid in ComposeMail object is changed:

                    I can get the owner_guid by checking the link associated with the local folder alias. It provides owner_guid:realFolderId - so I can handle a workaround for now

                    My question was related to

                    However Kopano and IMAP backends (and maybe also some other custom backends) would then need to split $sm->source->itemid in folderid and itemid themselves which is also not ideal.

                    Do they “have to” split the folderId and itemId? Would the APIs for fetching/moving/etc not accept a long form folderId:itemId

                    Manfred 1 Reply Last reply Reply Quote 0
                    • Manfred
                      Manfred Kopano @liverpoolfcfan last edited by

                      Hi @liverpoolfcfan,

                      @liverpoolfcfan said in SmartForward - itemid in ComposeMail object is changed:

                      @Manfred said in SmartForward - itemid in ComposeMail object is changed:
                      My question was related to

                      However Kopano and IMAP backends (and maybe also some other custom backends) would then need to split $sm->source->itemid in folderid and itemid themselves which is also not ideal.

                      Do they “have to” split the folderId and itemId? Would the APIs for fetching/moving/etc not accept a long form folderId:itemId

                      The Fetch command accepts the longid, but SendMail doesn’t. Maybe it’s different for zimbra, but Kopano and IMAP backends have to split the folderid from the itemid at some point.

                      Manfred

                      liverpoolfcfan 1 Reply Last reply Reply Quote 0
                      • liverpoolfcfan
                        liverpoolfcfan @Manfred last edited by

                        @Manfred OK. Thanks. I will implement a workaround for now.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post