View Issue Details

IDProjectCategoryView StatusLast Update
0002570SOGo Connectorwith external serverpublic2016-07-22 19:37
Reporterllalonde Assigned Toludovic  
PrioritynormalSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Platformx86_64OSWindowsOS Version7
Fixed in Version31.0.4 
Summary0002570: Multiple emails not synchronized
Description

Multiple email entries are not synced... Only one address is synchronized in the Thunderbird contact list.

We are using Zimbra as our CalDAV/CardDAV server.

Steps To Reproduce

1) Install Thunderbird ESR 24.2.0
2) Install Sogo Connector 24.0.2
3) Configure IMAPS, CardDAV, CardDAV server entries

Result:

Contacts with multiple email entries only show one email in Thunderbird contacts.

TagsCardDAV, sync

Relationships

has duplicate 0002897 new SoGo Connector doesn't sync email addresses that are marked as "preferred" in Owncloud 

Activities

IT

IT

2014-01-26 12:54

reporter   ~0006425

I confirm this issue with

  • Thunderbird 24.2.0 (32bit version on 64bit Win7)
  • Sogo Connector 24.0.2
  • OwnCloud 6.0.0a CardDAV

Example:
vcard-file on server contains the following entries:
BEGIN:VCARD
VERSION:3.0
[...]
EMAIL;TYPE=PREF;TYPE=INTERNET:email-01@example.com
EMAIL;TYPE=INTERNET:email-02@example.com
[...]
END:VCARD

Only the last EMAIL entry gets synced to the thunderbird address book. The first (preferred!) entry is omitted.

(Wrong) result in tb address book after syncing with sogo:
Email: email-02@example.com
Additional Email: <blank>

(Expected) result in tb address book after importing vcard-file manually:
Email: email-01@example.com
Additional Email: email-02@example.com

Please feel free to ask if you need any further information.

alogb

alogb

2014-03-25 10:22

reporter   ~0006779

Last edited: 2014-03-25 10:23

I confirm this issue and the desccription/example given by IT with

  • Thunderbird 24.4.0 (32bit version on Win 7 x64)
  • Sogo Connector 24.0.4
  • Owncloud 6.0.2 CardDAV

Synchronization does work between Owncloud, Android and eMClient

ivo

ivo

2014-05-20 12:49

reporter   ~0007054

I use Zentyal/Zarafa + SabreDav for CardDav. If a contact in Zarafa has more than one email address, then only the last one is mapped into the first email address in Thunderbird. But the disaster comes after any change in the contact in TB and a consequent sync to Zarafa. At that moment only one email address in TB is copied to Zarafa and the other ones are deleted. So, the final state of the cycle is, that all emails except the former last one are deleted. And that's makes SoGo connector unusable even if otherwise very good application.
I have checked this in XML carddav files and SabreDav really exports all emails and SoGo returns only first email item as well (e.g. in case of the others were added in TB).
When corrected, please don't forget situation, when in Zarafa (or other server) are three or more email addresses and in TB only 2 could be imported. So, there has to be somehow managed, that third and next emails must not be deleted from server even, if they are not visible in TB.

sogo-bts

sogo-bts

2014-07-12 17:40

reporter   ~0007316

I use version Davdroid 0.5.11, Thunderbird 24.6.0 and SOGo connector 24.0.5 on Linux, and Baikal 0.2.7.
When everything is synchronized, most of my email addresses are found as 'alternative addresses' in thunderbird, and therefore cannot be used with the message composition window, except to write them one by one.
I'm not sure this is a bug in Sogo...
When a contact has 3 mail addresses recorded on my phone, for example, and I edit it in Sogo, when I then sync : 1 of the addresses out of the 3 is lost.

nfilus

nfilus

2014-07-28 10:11

reporter   ~0007361

I just analyzed the same issue in my (corporate) environment using
TB 31.0 with SoGo Connector 24.0.5 and sabre-zarafa 0.21 (https://github.com/bokxing-it/sabre-zarafa):

Sabre-zarafa generates vcards with multiple addresses like this:

BEGIN:VCARD
VERSION:3.0
PRODID:-//SabreDav/ZarafaBackend/0.21
FN:Joe user
REV:2013-10-10T14:24:11+02:00
EMAIL;PREF=1;X-CN="^'Joe User^'":joe.user@company.com
EMAIL;PREF=2;X-CN="^'Joe User^'":joe_user@private.com
EMAIL;PREF=3;X-CN="^'Joe User^'":joe_user
...

Only the last e-mail is available in TB.

Can this format be supported by SoGo or do I need to open a ticket for sabre-zarafa?

Best regards

jurgenhaas

jurgenhaas

2014-08-01 12:10

reporter   ~0007376

Same issue with these components:

  • Ubuntu 14.04
  • Thunderbird 31
  • Lightning 3.3
  • SOGo Connector 24.0.5
  • OwnCloud 7

Only the last email address is available in Thunderbird, all others are just missing.

emc2

emc2

2014-08-13 09:01

reporter   ~0007405

Same issue here with:

Windows 7 64 bit
Thunderbird 31 (was the same with 24)
SOGO Connector 24.0.6
OwnCloud 7 (on Win7 64bit)

Thats a very bad bug... makes SOGO unusable, because the first email address is normally the most important...

Pander

Pander

2014-09-17 16:48

reporter   ~0007521

Perhaps run https://addons.mozilla.org/thunderbird/addon/duplicate-contact-manager/ before syncing as a workaround. Nevertheless, loss of data is not acceptable indeed.

jammon88

jammon88

2014-12-20 13:12

reporter   ~0007906

Same issue here with:

Windows 8 64 bit
Thunderbird 31
SOGO Connector 31.0.0
OwnCloud 7.0.4

When can you fix that? What's exactly the problem?

Best regards
Jammon

tenbob

tenbob

2015-01-21 13:35

reporter   ~0008100

This confirmed bug is nearly a year old with no sign of any fix or even an acknowledgement from the devs.

It has the potential to permanently corrupt your data. If you sync from the server to Thunderbird it only copies one of several email addresses that are stored. If you then sync back the other way, the server thinks the extra addresses should be deleted.

The Thunderbird connector is just about unusable until this is fixed.

fekepp

fekepp

2015-06-23 15:22

reporter   ~0008667

I tested a bit

ownCloud: 8.0.4
Inverse SOGo Connector: 31.0.1
Akonadi Server: 1.13.0

Posted the results at:
https://github.com/owncloud/contacts/issues/608#issuecomment-114540563

Georg

Georg

2015-06-29 17:47

reporter   ~0008679

Same with me:
I had lost email adresses of my contacts after syncing via Sogo Connector!!

Thunderbird 38 with Lightning 4.0.0.1
Inverse SOGo Connector: 31.0.1
ownCloud: 8.0.4

Matte

Matte

2015-09-01 13:17

reporter   ~0008883

I just discovered the right syntax to have two mail addresses:

BEGIN:VCARD
VERSION:3.0
[...]
EMAIL;TYPE=WORK:email-01@example.com
EMAIL;TYPE=HOME:email-02@example.com
[...]
END:VCARD

After syncing with sogo I have:
Email: email-01@example.com
Additional Email: email-02@example.com

I replaced all "EMAIL:", "EMAIL;TYPE=PREF:" instances in the original vcf file (just a couple of seconds with vim search and replace). Now everything seems to work correctly.

My setup:
TB 31.8.0 (Icedove on Debian jessie)
Inverse SOGo Connector 31.0.1
Radicale 0.9-1

Napkin

Napkin

2016-02-01 15:18

reporter   ~0009385

Email addresses in Zimbra (8.6.0p4) do not have those tags. Multiple addresses of a contact create this carddav output:

EMAIL;TYPE=internet:email-01@example.com
EMAIL;TYPE=internet:email-02@example.com
EMAIL;TYPE=internet:email-03@example.com
EMAIL;TYPE=internet:email-04@example.com

In SOGo Connector's current state only the last email is saved in Thunderbird's "PrimaryEmail". Unfortunately for us, the first email address is the main address, while the others are just aliases.

I modified the code to put the first address of type=internet into PrimaryEmail and the second address into SecondaryEmail (Patch 0001-Handle-email...).

Additionally, it'll upload both addresses from thunderbird to the carddav server with type=internet (Patch 0002-Write-email...).

Works fine with Zimbra - probably not a good idea for people whose carddav server can handle type=HOME and type=WORK.

Cheers,
Marc

Napkin

Napkin

2016-02-01 15:19

reporter  

0001-Handle-email-addresses-without-tags-HOME-or-WORK-whe.patch (2,489 bytes)   
From af83cbabffa13f6f642ce0659deb7fa381b85c06 Mon Sep 17 00:00:00 2001
From: "Marc H. Thoben" <mthoben@mpipz.mpg.de>
Date: Mon, 1 Feb 2016 16:03:05 +0100
Subject: [PATCH 1/3] Handle email addresses without tags HOME or WORK when
 downloading differently.

* First encountered address will be put into PrimaryEmail.
* Second encountered address will be put into SecondEmail.
* All other emails will be ignored...
* ...AND DELETED when syncing back to the server!
---
 .../content/sogo-connector/general/vcards.utils.js | 24 +++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/chrome/content/sogo-connector/general/vcards.utils.js b/chrome/content/sogo-connector/general/vcards.utils.js
index 03a8c2e..9be9575 100644
--- a/chrome/content/sogo-connector/general/vcards.utils.js
+++ b/chrome/content/sogo-connector/general/vcards.utils.js
@@ -384,12 +384,7 @@ let _insertCardMethods = {
             props["SecondEmail"] = values[0];
         }
         else {
-            if (props["PrimaryEmail"] && props["PrimaryEmail"].length > 0) {
-                props["SecondEmail"] = values[0];
-            }
-            else {
-                props["PrimaryEmail"] = values[0];
-            }
+            props["PrimaryEmail"] = values[0];
         }
     },
     url: function(props, parameters, values) {
@@ -539,7 +534,22 @@ function InsertCardData(card, tag, parameters, values) {
                 card.deleteProperty(k);
             }
             else {
-                card.setProperty(k, properties[k]);
+                let tmpPrimaryEmail = card.getProperty("PrimaryEmail", "");
+                let tmpSecondEmail = card.getProperty("SecondEmail", "");
+                if (k == "PrimaryEmail") {
+                    if (tmpPrimaryEmail.length == 0) {
+                        card.setProperty(k, properties[k]);
+                    }
+                    else if (tmpSecondEmail.length == 0) {
+                        card.setProperty("SecondEmail", properties[k]);
+                    }
+                }
+                else if (k == "SecondEmail" && tmpSecondEmail.length == 0) {
+                    card.setProperty("SecondEmail", properties[k]);
+                }
+                else {
+                    card.setProperty(k, properties[k]);
+                }
             }
             // if (k == "PhotoURI" || k == "PhotoName") {
             //     dump("  card value: " + card.getProperty(k, "(nil)") + "\n");
-- 
2.6.2

Napkin

Napkin

2016-02-01 15:19

reporter  

0002-Write-email-addresses-with-tag-INTERNET-when-uploadi.patch (1,388 bytes)   
From f5a25bb002f4df07908afd727159833a130e001e Mon Sep 17 00:00:00 2001
From: "Marc H. Thoben" <mthoben@mpipz.mpg.de>
Date: Mon, 1 Feb 2016 15:20:21 +0100
Subject: [PATCH 2/3] Write email addresses with tag INTERNET when uploading.

---
 chrome/content/sogo-connector/general/vcards.utils.js | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/chrome/content/sogo-connector/general/vcards.utils.js b/chrome/content/sogo-connector/general/vcards.utils.js
index 9be9575..31cd78d 100644
--- a/chrome/content/sogo-connector/general/vcards.utils.js
+++ b/chrome/content/sogo-connector/general/vcards.utils.js
@@ -737,14 +737,14 @@ function card2vcard(card) {
     let secondEmail = card.getProperty("SecondEmail", "");
 
     if (primaryEmail.length) {
-        vCard += foldedLine("EMAIL;TYPE=work:"
+        vCard += foldedLine("EMAIL;TYPE=internet:"
                             + escapedForCard(primaryEmail)) + "\r\n";
         if (secondEmail.length)
-            vCard += foldedLine("EMAIL;TYPE=home:"
+            vCard += foldedLine("EMAIL;TYPE=internet:"
                                 + escapedForCard(secondEmail)) + "\r\n";
     }
     else if (secondEmail.length) {
-        vCard += foldedLine("EMAIL;TYPE=work:"
+        vCard += foldedLine("EMAIL;TYPE=internet:"
                             + escapedForCard(secondEmail)) + "\r\n";
     }
 
-- 
2.6.2

nicolatiana

nicolatiana

2016-04-14 21:06

reporter  

cats.jpg (238,817 bytes)   
cats.jpg (238,817 bytes)   
nicolatiana

nicolatiana

2016-04-14 21:10

reporter   ~0009986

Last edited: 2016-04-14 21:11

Thunderbird 38.6 + Lightning 4.0.5.2 + Sogo Connector 31.2 on Xubuntu 12.04.
Sogo 2.3.10-1.el5 on Sme Server 8.2 (Centos 5.x)
The secondary e-mail is not written in Sogo server so not synced over the network.
I see some patches attached: I'm note a code developer but I can try to work inside the xpi (connector ?). Which is/are the files to be touched ?

ludovic

ludovic

2016-07-22 19:37

administrator   ~0010529

Added first patch: https://github.com/inverse-inc/sogo-connector.tb31/commit/2253f36fb2093db6749127ddd48270f70675ed72

Won't add the 2nd one as SOGo supports home/work address types.

Issue History

Date Modified Username Field Change
2014-01-04 15:09 llalonde New Issue
2014-01-26 12:54 IT Note Added: 0006425
2014-03-25 10:22 alogb Note Added: 0006779
2014-03-25 10:23 alogb Note Edited: 0006779
2014-05-20 12:49 ivo Note Added: 0007054
2014-06-01 15:17 ivo Tag Attached: CardDAV
2014-06-01 15:17 ivo Tag Attached: sync
2014-07-12 17:40 sogo-bts Note Added: 0007316
2014-07-28 10:11 nfilus Note Added: 0007361
2014-08-01 12:10 jurgenhaas Note Added: 0007376
2014-08-13 09:01 emc2 Note Added: 0007405
2014-08-15 08:30 Christian Mack Relationship added has duplicate 0002897
2014-09-17 16:48 Pander Note Added: 0007521
2014-12-20 13:12 jammon88 Note Added: 0007906
2015-01-21 13:35 tenbob Note Added: 0008100
2015-06-23 15:22 fekepp Note Added: 0008667
2015-06-29 17:47 Georg Note Added: 0008679
2015-09-01 13:17 Matte Note Added: 0008883
2016-02-01 15:18 Napkin Note Added: 0009385
2016-02-01 15:19 Napkin File Added: 0001-Handle-email-addresses-without-tags-HOME-or-WORK-whe.patch
2016-02-01 15:19 Napkin File Added: 0002-Write-email-addresses-with-tag-INTERNET-when-uploadi.patch
2016-04-14 21:06 nicolatiana File Added: cats.jpg
2016-04-14 21:10 nicolatiana Note Added: 0009986
2016-04-14 21:11 nicolatiana Note Edited: 0009986
2016-07-12 12:04 ludovic Status new => assigned
2016-07-12 12:04 ludovic Assigned To => ludovic
2016-07-22 19:37 ludovic Note Added: 0010529
2016-07-22 19:37 ludovic Status assigned => resolved
2016-07-22 19:37 ludovic Fixed in Version => 31.0.4
2016-07-22 19:37 ludovic Resolution open => fixed