Horde Groupware, LDAP / AD address book search or sending email to groups

horde

#1

Hello, I have been looking in the forum and i can’t seem to find anything related to what I’m want to do… It seems I cannot send emails to an AD/LDAP group from Horde, I also am not sure where to configure LDAP searching for users.

Is this possible? is there documentation regarding this? I have no problem reading and learning so if you want to tell me RTFM please link it and I will :slight_smile:

Thanks !


#2

Hi

(1) email to LDAP group

If you use UCS as mailserver, you have to set an email-address on the group object

-> udm groups/group list --filter name=Domain\ Users
name=Domain Users
DN: cn=Domain Users,cn=groups,dc=four,dc=three
  UVMMGroup: 0
  adGroupType: -2147483646
  description: None
  gidNumber: 5001
  mailAddress: users@four.three
  name: Domain Users
  sambaGroupType: 2
  sambaRID: 513
  users: uid=Administrator,cn=users,dc=four,dc=three
  users: uid=ucs-sso,cn=users,dc=four,dc=three
  univentionPolicyReference: cn=default-umc-users,cn=UMC,cn=policies,dc=four,dc=threeaste code here

now i can send an email to users@four.three and every member of this group gets the mail.

(2) LDAP Addressbook

https://wiki.horde.org/ExistingLDAPHowTo

You can configure a LDAP Addressbook in Horde Turba (the Horde contact management application). Go into the horde docker container

-> univention-app shell horde

and add a file /etc/horde/turba/backends.d/25-my-ldap-addressbook.php with something like

<?php
 
/**
 * A local address book in an LDAP directory. This implements a public
 * (shared) address book.
 *
 * To store distribution lists in the LDAP directory, you'll need to include
 * horde.schema from Horde in your LDAP configuration.
 *
 * To store freebusy information in the LDAP directory, you'll need to include
 * rfc2739.schema from Horde in your LDAP configuration.
 */
$cfgSources['localldap'] = array(
    'disabled' => false,
    'title' => _("Shared LDAP Directory"),
    'type' => 'ldap',
    'params' => array(
        'server' => 'ucr ldap/server/name',
        'port' => 7389,
        'tls' => true,
        'root' => 'ucr ldap/base',
        'bind_dn' => 'ucr ldap/hostdn',
        'bind_password' => 'content_of_/etc/machine.secret',
        'sizelimit' => 200,
        'dn' => array('cn'),
        'objectclass' => array('top',
                               'person',
                               'organizationalPerson',
			       'univentionMail',
                               'inetOrgPerson'),
        'scope' => 'sub',
        'charset' => 'utf-8',
        'checkrequired' => false,
        'checkrequired_string' => ' ',
        'checksyntax' => false,
        'version' => 3,
        'filter' => 'mailPrimaryAddress=*',
    ),
    'map' => array(
        '__key' => 'dn',
        '__uid' => 'uid',
        'name' => 'cn',
        'email' => 'mailPrimaryAddress',
        'homePhone' => 'homephone',
        'workPhone' => 'telephonenumber',
        'cellPhone' => 'mobiletelephonenumber',
        'homeAddress' => 'homepostaladdress',
    ),
    'search' => array(
        'name',
        'email',
        'homePhone',
        'workPhone',
        'cellPhone',
        'homeAddress'
    ),
    'strict' => array(
        'dn', 'uid'
    ),
    'approximate' => array(
        'cn',
    ),
    'export' => true,
    'browse' => true,
    'public' => true,
    'readonly' => true,
    'admin' => array(),
);

/* End IMSP sources. */

ucr ldap/… means the value from “ucr get ldap/…” in the container and content_of_/etc/machine.secret is the password from the /etc/machine.secret in the container. Obviously this is just a short example, there are many config options for LDAP Filter and Mapping of Attributes, but this snippet worked for me.

Best regards,
Felix