[horde] How to prevent syncml from from combining multiple email addresses into one...

Jan Schneider jan at horde.org
Tue Oct 15 11:11:35 UTC 2013


Zitat von Mehmet Giritli <mgiritli at giritli.eu>:

> On Thu, 2013-09-26 at 19:38 +0300, Mehmet Giritli wrote:
>> On Thu, 2013-09-26 at 17:13 +0200, Jan Schneider wrote:
>> > Zitat von Mehmet Giritli <mgiritli at giritli.eu>:
>> >
>> > > On Thu, 2013-08-29 at 10:29 +0200, Jan Schneider wrote:
>> > >> Zitat von Mehmet Giritli <mgiritli at giritli.eu>:
>> > >>
>> > >> > On Thu, 2013-08-15 at 15:48 +0200, Jan Schneider wrote:
>> > >> >> Zitat von Mehmet Giritli <mgiritli at giritli.eu>:
>> > >> >>
>> > >> >> > On Tue, 2013-08-13 at 11:06 +0200, Jan Schneider wrote:
>> > >> >> >> Zitat von Mehmet Giritli <mgiritli at giritli.eu>:
>> > >> >> >>
>> > >> >> >> > Hi,
>> > >> >> >> >
>> > >> >> >> > I use syncml official client to sync contacts between horde
>> > >> with ldap
>> > >> >> >> > backend and my android phone. My many contacts naturally
>> > >> have multiple
>> > >> >> >> > email addresses. When I completely reload the device from
>> > >> server, I can
>> > >> >> >> > see multiple emails syncing up correctly. But When I sync
>> > >> >> something from
>> > >> >> >> > the device to server, contacts with multiple emails  
>> get their emails
>> > >> >> >> > combined (comma seperated) into one email field on the  
>> ldap server.
>> > >> >> >> >
>> > >> >> >> > For the second time I had to go through my contacts and spend
>> > >> >> an hour to
>> > >> >> >> > correct the corruption. Is there a way to prevent this from
>> > >> happening
>> > >> >> >> > and still sync new contacts from device to the server?
>> > >> >> >> >
>> > >> >> >> > Regards.
>> > >> >> >>
>> > >> >> >> What is an "official syncml client"?
>> > >> >> >
>> > >> >> > Synthesis syncml client.
>> > >> >> >
>> > >> >> > http://www.synthesis.ch/
>> > >> >> >
>> > >> >> >
>> > >> >> >> Anyway, without more information
>> > >> >> >> about your address book mappings there isn't much we can tell.
>> > >> >> >
>> > >> >> > This is the addressbook that is selected for sync. Removed
>> > >> some data for
>> > >> >> > privacy.
>> > >> >> >
>> > >> >> > $cfgSources['gollum.mehmet.sync'] = array(
>> > >> >> >     'disabled' => false,
>> > >> >> >      'title' => _("GOLLUM (Mehmet Sync)"),
>> > >> >> >      'type' => 'ldap',
>> > >> >> >      'params' => array(
>> > >> >> >          'server' => '',
>> > >> >> >          'port' => 389,
>> > >> >> >          'tls' => true,
>> > >> >> >         'version' => 3,
>> > >> >> >          'root' => '',
>> > >> >> >          'bind_dn' => '',
>> > >> >> >          'bind_password' => '',
>> > >> >> >          'dn' => array('uid'),
>> > >> >> >          'objectclass' => array('top',
>> > >> >> >                                 'person',
>> > >> >> >                                 'organizationalPerson',
>> > >> >> >                                 'inetOrgPerson',
>> > >> >> >                                 'evolutionPerson'),
>> > >> >> >          'scope' => 'sub',
>> > >> >> >          'charset' => 'utf-8',
>> > >> >> > 'filter' => '&(objectClass=person)(!(cn=admin))',
>> > >> >> >
>> > >> >> >      ),
>> > >> >> >      'map' => array(
>> > >> >> >          '__key' => 'dn',
>> > >> >> >          '__uid' => 'uid',
>> > >> >> >          'name' => 'cn',
>> > >> >> >         'firstname' => 'givenName',
>> > >> >> >         'lastname' => 'sn',
>> > >> >> >         'middlenames' => 'initials',
>> > >> >> >          'emails' => 'mail',
>> > >> >>
>> > >> >> Having a single field for all addresses is exactly what you
>> > >> configured here.
>> > >> >>
>> > >> >
>> > >> > Sorry for the late reply. If I put 'email' instead, then I  
>> get only one
>> > >> > email address synchronized to the device. But yea, the problem I
>> > >> > mentioned can be avoided this way, I know.
>> > >> >
>> > >> > So, is there a way syncing multiple multiple email addresses  
>> over syncml
>> > >> > without the original problem I mentioned happening?
>> > >>
>> > >> Yes, if you use the more specialized homeEmail and workEmail Turba
>> > >> attributes.
>> > >
>> > >
>> > > So, I was up for solving this problem finally but I noticed that it is
>> > > not that easy actually. The problem in the case of a ldap source is that
>> > > multiple emails are stored with essentially the same attributes, which
>> > > is called 'mail'. So In the turba backends configuration file, how can I
>> > > separate this mail attribute and assign it to an horde attribute for
>> > > each email address in it?
>> > >
>> > >> --
>> > >> Jan Schneider
>> > >> The Horde Project
>> > >> http://www.horde.org/
>> > >>
>> >
>> > With the 'emails' attribute.
>>
>> Thanks for your email Jan but that takes me back to square one, doesn't
>> it? What I had initially was:
>>
>> 'emails' => 'mail'
>>
>> in my backends file for ldap. This showed multiple emails and synced
>> them correctly to other devices only partially:
>>
>> When I completely reload the device from  server, I can see multiple
>> emails syncing up correctly. But When I sync something from the device
>> to server, contacts with multiple emails get their emails combined
>> (comma seperated) into one email field on the ldap server.
>>
>> So I changed to:
>>
>> 'email' => 'mail'
>>
>> But now I can only see one email address per contact in the device after
>> sync. Your advice was to use homeEmail and workEmail attributes in the
>> backends file, one for each email address, but I don't know how to do
>> that with ldap since all email addresses are combined under 'mail' ldap
>> attribute.
>>
>> I hope it is clear now and sorry for the late reply which caused you to
>> forget the problem...
>>
>
> Jan, I think my message was overlooked. Can you try to answer my
> question please? I want to be able to sync multiple emails with my phone
> if I can...

This simply doesn't work with your setup, since you want to map a  
single Turba attribute (emails) into multiple LDAP attributes of the  
same name (mail). This is not supported by Turba.
As you noticed, it works when reading from LDAP, because we combine  
attributes value with a customizable separator (defaults to ", ") if  
the LDAP server returns multiple values for the same attribute name.
But the opposite direction is not as easy. We don't know if an  
attribute value from Turba that contains a separator is really a  
multi-value attribute or just contains it by coincidence. We don't  
know if the matching LDAP attribute supports multiple values either.  
With the flexible approach and attribute mapping that Turba supports,  
I don't see a solution for that problem that would work generically.
-- 
Jan Schneider
The Horde Project
http://www.horde.org/



More information about the horde mailing list