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

    Unable to have new contacts sync from outlook

    General usage of Z-Push
    2
    13
    1447
    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.
    • bob4os
      bob4os last edited by

      CARDDAV_SUPPORTS_SYNC has nothing to do with two way sync.
      It tells Z-Push whether it always has to check every contact in your CardDAV addressbook for changes or if your CardDAV server supports synctoken, which as far as I know radicale does.
      With synctoken, Z-Push is able ask the CardDAV server if something has changed, without having to check every contact every time.

      It should work both ways with every client.

      Is it possible, that your Outlook stores these contacts locally?

      dborg89 1 Reply Last reply Reply Quote 0
      • dborg89
        dborg89 @bob4os last edited by

        @bob4os
        Thanks for your reply.

        It is currently storing them locally on outlook, however I had created/configured the outlook profile at the same time as the android’s one was configured.

        I know that the downloaded contacts from the carddav server are landing in the same folder on outlook as the locally stored contact(s) are being saved.

        Just not sure where to look on the Z-Push side to see if outlook is having issues pushing the contact up to the server.

        Cheers

        bob4os 2 Replies Last reply Reply Quote 0
        • bob4os
          bob4os @dborg89 last edited by

          @dborg89
          Is this your only account in this Outlook profile?
          Do you have an IMAP account configured too?

          I have had this behaviour, when the Exchange ActiveSync account was not the first account configured in a fresh Outlook profile.

          Outlook somehow defines weird defaults, if your first account is an IMAP account.

          dborg89 1 Reply Last reply Reply Quote 0
          • bob4os
            bob4os @dborg89 last edited by

            @dborg89
            It does not matter if multiple devices are configured at the same time.
            They are treated as separate devices with no overlap at all.

            1 Reply Last reply Reply Quote 0
            • dborg89
              dborg89 @bob4os last edited by dborg89

              @bob4os said in Unable to have new contacts sync from outlook:

              Is this your only account in this Outlook profile?

              Yes. I create a new profile in the mail app (in control panel).

              Do you have an IMAP account configured too?

              IMAP, Caldav and Carddav are configured. Z-push config is using combined and combined config can be seen here > https://pastebin.com/TZYLfxPu

              I have had this behaviour, when the Exchange ActiveSync account was not the first account configured in a fresh Outlook profile.

              I am using the “Exchange ActiveSync” (https://ibb.co/vPyHb5c) setup instead of the auto discover that the first page does (https://ibb.co/HtxNVYj).

              Outlook somehow defines weird defaults, if your first account is an IMAP account.

              I did try to recreate the profile again on Outlook, should I try again?

              bob4os 1 Reply Last reply Reply Quote 0
              • bob4os
                bob4os @dborg89 last edited by

                @dborg89
                I meant, if you have setup another mailbox with IMAP in your Outlook, not the Z-Push BackendCombined.

                If you did start with a clean profile already, I don’t know if this will help.
                You are doing it the right way.

                Do you know the Kopano Outlook Extension? (https://download.kopano.io/community/olextension%3A/)
                It’s a Outlook plugin, which makes your live easier if you need a resync - but if you setup your account, there is a weird glitch, where Outlook changes it’s ID, the first time it is restarted after setup.
                Outlook will look like it deleted everything.
                (Read: https://forum.kopano.io/topic/99/outlook-with-roaming-profile-on-different-computers/1?_=1646949342390)

                You are able to check for your ID with “z-push-admin.php”. Just list your devices like this:

                z-push-admin.php -a list -u <your username>
                

                Maybe fixing the ID might work:

                "HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Profiles\9375CFF0413111d3B88A00104B2A6676\00000002\EAS Device ID"
                

                Or just use the plugin to sync again.
                I have not had it loose its ID again afterwards.

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

                  Doing some more digging and I have found an issue on the outlook contact add that doesn’t exist on the android one.
                  Below is the radicale output.

                  [2022-03-10 19:21:23 -0500] [582878/Thread-108] [DEBUG] Request content:
                  BEGIN:VCARD
                  VERSION:3.0
                  PRODID:Z-Push
                  FN:OLCL\, Testing
                  N:OLCL;Testing
                  EMAIL;PREF=1:test@123.com
                  TEL;TYPE=WORK,VOICE:123456789
                  NOTE:^M\n
                  UID:D5D32087-90ED09CE-D9126A6B
                  END:VCARD
                  [2022-03-10 19:21:23 -0500] [582878/Thread-108] [WARNING] Bad PUT request on '/outlook@domain.email/contacts/D5D32087-90ED09CE-D9126A6B.vcf': At line 17: Failed to parse line: \n
                  Traceback (most recent call last):
                    File "/srv/radicale/env/lib/python3.9/site-packages/radicale/app/put.py", line 144, in do_PUT
                      vobject_items = radicale_item.read_components(content or "")
                    File "/srv/radicale/env/lib/python3.9/site-packages/radicale/item/__init__.py", line 52, in read_components
                      return list(vobject.readComponents(s))
                    File "/srv/radicale/env/lib/python3.9/site-packages/vobject/base.py", line 1101, in readComponents
                      vline = textLineToContentLine(line, n)
                    File "/srv/radicale/env/lib/python3.9/site-packages/vobject/base.py", line 925, in textLineToContentLine
                      return ContentLine(*parseLine(text, n), **{'encoded': True,
                    File "/srv/radicale/env/lib/python3.9/site-packages/vobject/base.py", line 813, in parseLine
                      raise ParseError("Failed to parse line: {0!s}".format(line), lineNumber)
                  vobject.base.ParseError: At line 17: Failed to parse line: \n
                  [2022-03-10 19:21:23 -0500] [582878/Thread-108] [DEBUG] Response content:
                  Bad Request```
                  bob4os 1 Reply Last reply Reply Quote 0
                  • bob4os
                    bob4os @dborg89 last edited by

                    @dborg89
                    I think it is the NOTE property. “^M\n” is a CRLF (carriage return + line feed)

                    According to RFC6350 line breaks in a TEXT value have to be either “\n” or “\N”.
                    CRLF ("\r\n") is reserved for multi line values, followed by a whitespace.

                    I think this is the issue.
                    BackendCardDAV is escaping or replacing those problematic characters already with the function escape() - but somehow this did not work…?

                    Did you place a note into this new contact?

                    dborg89 1 Reply Last reply Reply Quote 0
                    • dborg89
                      dborg89 @bob4os last edited by

                      I think it is the NOTE property. “^M\n” is a CRLF (carriage return + line feed)
                      According to RFC6350 line breaks in a TEXT value have to be either “\n” or “\N”.
                      CRLF ("\r\n") is reserved for multi line values, followed by a whitespace.

                      I think this is the issue.

                      Yeah spotted this too.

                      BackendCardDAV is escaping or replacing those problematic characters already with the function escape() - but somehow this did not work…?

                      Did you place a note into this new contact?

                      No but outlook adds it irrespective

                      I wonder if its worth adding a simple str replace on Z-Push’s end or a strip/replace on radicales end.

                      bob4os 1 Reply Last reply Reply Quote 0
                      • bob4os
                        bob4os @dborg89 last edited by

                        @dborg89
                        Look at backend/carddav/carddav.php line 1278:

                        if ($k == 'body' && isset($message->asbody->data)) {
                            $val = stream_get_contents($message->asbody->data);
                        }
                        

                        $message->body is only set in ActiveSync version 2.5.
                        Since ActiveSync version 12.0 the body is in $message->asbody->data and the content is not escaped here.

                        Try this:

                        if ($k == 'body' && isset($message->asbody->data)) {
                            $val = $this->escape(stream_get_contents($message->asbody->data));
                        }
                        

                        There is also no check if the data is type “html” or “rtf” or “plain” - what a mess…

                        dborg89 1 Reply Last reply Reply Quote 0
                        • dborg89
                          dborg89 @bob4os last edited by

                          @bob4os
                          You are a legend!
                          This issue is now resolved for outlook PC.

                          I have synced the acc across android and outlook (as well as my webmail client) and all 3 are syncing and able to add and retrieve new contacts.

                          Thank you very much :)

                          Might be worth including into your GH repo too.

                          bob4os 1 Reply Last reply Reply Quote 0
                          • bob4os
                            bob4os @dborg89 last edited by

                            @dborg89
                            I am glad I could help.

                            I will add that with the missing body type information…
                            (Just gotta check specifications once again, what is necessary.)

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