OXAE MailingLists with contacts-ldap: Difference between revisions

From Open-Xchange
No edit summary
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
Conceptual notice:
=How to view OXAE mailing lists in a public folder in OX=


OXAE "mailing lists" are completely transparent to the user, the
OXAE "mailing lists" can be created in the Univention Directory Manager web interface. They are completely transparent to the user: the mailing list is expanded by postfix when the mail is sent.
list is expanded by postfix when the mail is sent.


Therefore, this HOWTO describes how to map OXAE mailing lists as
This HOWTO describes how to map OXAE mailing lists as
contacts / users into OX, and not as groups / distribution lists.
contacts / users into OX. They will be visible in a global address book listed in "Public folders".


It is currently not possible to import OXAE mailing lists
This can be achieved by using the <tt>contacts-ldap</tt> plugin for OX. First, the package <tt>open-xchange-contacts-ldap</tt> needs to be installed.


* Login to the OXAE Management Console web interface
==Login to the OXAE Management Console web interface==


To enable the software repository from where contacts-ldap will be installed:
Enable the software repository from where <tt>contacts-ldap</tt> will be installed:


* Go to the module "Online updates"
* Go to the module "Online updates"
* in "Components", click on "ox"
* In "Components", click on "ox"
* in the following dialogue, click the box next to "Enabled" and then "Set"
* In the following dialogue, click the box next to "Enabled" and then "Set"
* back in "Online updates", click "Check for updates" and update if necessary
* Back in "Online updates", click "Check for updates" and update if necessary
* reboot if necessary
* Reboot if necessary


Now that the software repository is enabled, install the contacts-ldap bundle:
Now that the software repository is enabled, install the <tt>contacts-ldap</tt> bundle:


* in the OXAE Management Console web interface, choose "Package management"
* In the OXAE Management Console web interface, choose "Package management"
* in the Search interface, enter "*ldap" in the "Pattern" search box and click "Search"
* In the Search interface, enter "*ldap" in the "Pattern" search box and click "Search"
* click on open-xchange-contacts-ldap
* Click on <tt>open-xchange-contacts-ldap</tt>
* in the following dialoque, click "Install" and follow the installer workflow.
* In the following dialogue, click "Install" and follow the installer workflow.


Configure the contacts-ldap bundle:
==Configure the bundle==


* login with ssh to your OXAE server
* Login with ssh to your OXAE server
* cd /opt/open-xchange/etc/groupware/contacts-ldap
* Change to the <tt>contacts-ldap</tt> config directory:
* find out your context:


  /opt/open-xchange/sbin/listcontext -A oxadminmaster -P $(cat /etc/ox-secrets/master.secret)
cd /opt/open-xchange/etc/groupware/contacts-ldap


 
* Find out the number of the OX context that was set up by OXAE (in a standard OXAE installation this should be context 10, and the remainder of this article assumes that it is):
In a standard OXAE installation this should be context 10, and the remainder of this article assumes that it is.
 
/opt/open-xchange/sbin/listcontext -A oxadminmaster -P $(cat /etc/ox-secrets/master.secret)


* create a contacts-ldap config directory for your context.
* create a contacts-ldap config directory for your context.


  mkdir /opt/open-xchange/etc/groupware/contacts-ldap/10
mkdir /opt/open-xchange/etc/groupware/contacts-ldap/10


* create a config file in the context folder defining how the folder with the imported LDAP data will be called, and what data will be imported:
* create a config file in the context folder defining how the folder with the imported LDAP data will be called, and what data will be imported:


  touch /opt/open-xchange/etc/groupware/contacts-ldap/10/MailingLists.properties
touch /opt/open-xchange/etc/groupware/contacts-ldap/10/MailingLists.properties


The content of this file should look like this:
* The content of this file should look like this:


<pre>
<pre>
Line 156: Line 155:
  com.openexchange.contacts.ldap.context10.MailingLists.baseDN_users=dc=example,dc=com
  com.openexchange.contacts.ldap.context10.MailingLists.baseDN_users=dc=example,dc=com


to reflect your installation. The example above assumes a UCS domain called <tt>example.com</tt>.
to reflect your installation. The example above assumes a UCS domain called <tt>example.com</tt>.
   
   
In the property
In the property


  com.openexchange.contacts.ldap.context10.MailingLists.foldername=Mailing Lists
com.openexchange.contacts.ldap.context10.MailingLists.foldername=Mailing Lists


specify the name of the public folder in the OX web interface that will contain the imported data.
specify the name of the public folder in the OX web interface that will contain the imported data.


The property
The property
com.openexchange.contacts.ldap.context10.MailingLists.mappingfile=mapping.openldap.mailinglists.properties


com.openexchange.contacts.ldap.context10.MailingLists.mappingfile=mapping.openldap.mailinglists.properties
specifies the mapping file which will be created in the next step. If you name that file differently, adjust this property too.
specifies the mapping file which will be created in the next step. If you name that file differently, adjust this property too.


* create a config file in the main contacts-ldap config dir defining the
* create a config file in the main contacts-ldap config dir defining the mapping between LDAP and open-xchange fields in the main contacts-ldap config directory (not in the context subdirectory):
  mapping between LDAP and open-xchange fields in the main contacts-ldap config directory (not in the context subdirectory):


  touch /opt/open-xchange/etc/groupware/contacts-ldap/mapping.openldap.mailinglists.properties
  touch /opt/open-xchange/etc/groupware/contacts-ldap/mapping.openldap.mailinglists.properties


  The content of the file should look like this:
* The content of the file should look like this:


#################
<pre>
#
#################
# Mappings
#
# The left side contains the values in OX, and the right side contains the  value name for ldap
# Mappings
# The left side contains the values in OX, and the right side contains the  value name for ldap


# This part contains the openLdap mapping
# This part contains the openLdap mapping


# Required
# Required
  com.openexchange.contacts.ldap.mapping.openldap.mailinglists.uniqueid            = cn
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.uniqueid            = cn


# Optional
# Optional
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.displayname        = cn
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.displayname        = cn
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.surname            = cn
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.surname            = cn
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.email1              = mailPrimaryAddress
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.email1              = mailPrimaryAddress


# we don't show distributionlists at all, so this is not used, but there's an  exception when it's not there
# we don't show distributionlists at all, so this is not used, but there's an  exception when it's not there
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.distributionuid = uid
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.distributionuid = uid
</pre>


* restart server
==Restart the OX groupware server==


  /etc/init.d/open-xchange-groupware restart
  /etc/init.d/open-xchange-groupware restart


Check the configuration
==Check the configuration==


* Login as a normal user
* Login as a normal user
* Navigate to "Public folders"
* Navigate to "Public folders"
* The list of public folders should contain a new folder now, containing the
* The list of public folders should contain a new folder now, containing the mailing lists created in the UCS Directory Manager web frontend.
  mailing lists created in the UCS Directory Manager web frontend.
 
If you want to rename the public folder, do so in the <tt>contacts-ldap</tt> configuration file as explained above and restart the groupware. The folder with the old name will not disappear automatically, but can simply be deleted in the OX web interface by the oxadmin user.
 
Please note that the contacts imported by <tt>contacts-ldap</tt> are in some cases only visible in the OX web interface when explicitly searched for. For example, to write an email to one of the imported mailing lists, follow these steps:
 
* Click on the "New Email" button in the OX web interface
* Click on the "To:" or "Cc:" button to open the search window
* Uncheck the box "Search all contact folders"
* Click on "Contact folder..." and select the public folder that contains the imported mailing lists
* Enter the name, or the part of a name of a mailing list (without wildcards) in the "Search" field and click "Go"
* Click on the desired mailing list and on "Add To:", "Add Cc:" or "Add Bcc:"
 
Alternatively, it is possible to create a new email to one of the mailing lists directly from the public folder:


If you want to rename the public folder, do so in the contacts-ldap configuration file and restart the groupware. The folder with the old name will not disappear automatically, but can simply be deleted in the OX web interface by the oxadmin user.
* Navigate to the public folder that contains the imported mailing lists
* Select a mailing list by clicking on it
* Click on "Detail" in the panel in the upper part of the OX window
* Create a new email by clicking directly on the email address of the mailing list.

Latest revision as of 11:15, 16 October 2009

How to view OXAE mailing lists in a public folder in OX

OXAE "mailing lists" can be created in the Univention Directory Manager web interface. They are completely transparent to the user: the mailing list is expanded by postfix when the mail is sent.

This HOWTO describes how to map OXAE mailing lists as contacts / users into OX. They will be visible in a global address book listed in "Public folders".

This can be achieved by using the contacts-ldap plugin for OX. First, the package open-xchange-contacts-ldap needs to be installed.

Login to the OXAE Management Console web interface

Enable the software repository from where contacts-ldap will be installed:

  • Go to the module "Online updates"
  • In "Components", click on "ox"
  • In the following dialogue, click the box next to "Enabled" and then "Set"
  • Back in "Online updates", click "Check for updates" and update if necessary
  • Reboot if necessary

Now that the software repository is enabled, install the contacts-ldap bundle:

  • In the OXAE Management Console web interface, choose "Package management"
  • In the Search interface, enter "*ldap" in the "Pattern" search box and click "Search"
  • Click on open-xchange-contacts-ldap
  • In the following dialogue, click "Install" and follow the installer workflow.

Configure the bundle

  • Login with ssh to your OXAE server
  • Change to the contacts-ldap config directory:
cd /opt/open-xchange/etc/groupware/contacts-ldap
  • Find out the number of the OX context that was set up by OXAE (in a standard OXAE installation this should be context 10, and the remainder of this article assumes that it is):
/opt/open-xchange/sbin/listcontext -A oxadminmaster -P $(cat /etc/ox-secrets/master.secret) 
  • create a contacts-ldap config directory for your context.
mkdir /opt/open-xchange/etc/groupware/contacts-ldap/10
  • create a config file in the context folder defining how the folder with the imported LDAP data will be called, and what data will be imported:
touch /opt/open-xchange/etc/groupware/contacts-ldap/10/MailingLists.properties
  • The content of this file should look like this:
# A property file for the context with id 10

# Specify the uri of the LDAP server here e.g. ldap://localhost
com.openexchange.contacts.ldap.context10.MailingLists.uri=ldap://localhost

# Specify the baseDN where the users reside here
com.openexchange.contacts.ldap.context10.MailingLists.baseDN_users=

# Specify the bindDN here (optional)
com.openexchange.contacts.ldap.context10.MailingLists.AdminDN=

# Specify the bindPW here (optional)
com.openexchange.contacts.ldap.context10.MailingLists.AdminBindPW=

# Specify the search base here (sub, base, one)
com.openexchange.contacts.ldap.context10.MailingLists.searchScope=sub

# Specify the type of authentication here. Possible values are "anonymous", "AdminDN" or "user"
com.openexchange.contacts.ldap.context10.MailingLists.authtype=anonymous

# Specify if server-side sorting should be used or if the data should be sorted in the groupware.
# Possible values are "server", "groupware"
com.openexchange.contacts.ldap.context10.MailingLists.sorting=groupware

# Set the login source if user auth is enabled; meaning which source is taken
# to determine a users login for LDAP. If 'login' is set, then user's individual
# mail login as defined in user storage is taken. If 'mail' is set, then user's
# individual primary email address is taken. If 'name' is set, then user's
# individual system's user name is taken.
# Possible values are: login, mail, and name
com.openexchange.contacts.ldap.context10.MailingLists.userLoginSource=name

# Specify the user search filter here (optional). This is the first part which can be chose freely
#com.openexchange.contacts.ldap.context10.MailingLists.userSearchFilter=(objectclass=univentionOxGroup)

# Specify the user search scope here (optional). Possible value are sub, base  and one. If this
# value is left empty the default searchScope will be used
com.openexchange.contacts.ldap.context10.MailingLists.userSearchScope=sub

# Specify the user search attribute here (optional). This value specifies which attribute contains the
# loginname which is used for the groupware
com.openexchange.contacts.ldap.context10.MailingLists.userSearchAttribute=uid

# Specify the baseDN for the user search here (optional). If this value is left empty the global baseDN
# will be used
com.openexchange.contacts.ldap.context10.MailingLists.userSearchBaseDN=

# Specify the user auth type here (optional). Possible values are "anonymous" or "AdminDN"
com.openexchange.contacts.ldap.context10.MailingLists.userAuthType=

# Specify the user AdminDN here (optional). If this value is left empty the global AdminDN will be used
com.openexchange.contacts.ldap.context10.MailingLists.userAdminDN=

# Specify the user AdminBindDN here (optional). If this value is left empty the global AdminBindPW will be used
com.openexchange.contacts.ldap.context10.MailingLists.userAdminBindPW=

# Specify if the value given for uniqueid is a unique long value in LDAP and can be used for
# identifying (setting "false"), or if it's a string value then memorymapping must be enabled
# to generate the longs (setting "true")
# Possible values are "true", "false"
com.openexchange.contacts.ldap.context10.MailingLists.memorymapping=true

# Specify the pagesize for paged results here. e.g. active directory only allows a max page size
# of 1000
com.openexchange.contacts.ldap.context10.MailingLists.pagesize=500

# This properties defines which file contains the mapping for the attributes
com.openexchange.contacts.ldap.context10.MailingLists.mappingfile=mapping.openldap.mailinglists.properties

# Specify the foldername for the global ldap folder here
com.openexchange.contacts.ldap.context10.MailingLists.foldername=Mailing Lists

# Specify the searchfilter for the global ldap folder here
com.openexchange.contacts.ldap.context10.MailingLists.searchfilter=(objectclass=univentionOxGroup)

# Specify what types of contacts should be displayed. May be "users", "distributionlists", or "both"
com.openexchange.contacts.ldap.context10.MailingLists.contactTypes=users

# Specify whether Outlook offers support for this bundle. If this option is
# enabled the contents of the folder are displayed in Outlook, otherwise only
# the folder name is displayed in Outlook but not its contents. Note that even
# if you enable Outlook support, Outlook will not recognize the deletion of
# contacts in LDAP atm.
com.openexchange.contacts.ldap.context10.MailingLists.outlook_support=false

# Specify if the support for detection of deleted object should be enabled for
# ADS, this is only used for the WebDAV interface used by Outlook.
# This feature uses a special information only available on Active Directory. Note
# that the deleted information is only available for the following lifetimes:
# 60 days for forests initially built using W2k and Server 2k3
# 180 days for forests that were initially built with Server 2k3 SP1
com.openexchange.contacts.ldap.context10.MailingLists.ADS_deletion_support=false

# Specify if the ldap server contains referrals and and how to handle them.
# Available options are:
# standard: leaves the setting in the java standard
# follow: follows a referral
# ignore: ignores a referral
# See http://java.sun.com/products/jndi/tutorial/ldap/referral/jndi.html for a
# detailed description
com.openexchange.contacts.ldap.context10.MailingLists.referrals=follow
  • Note that the names of the properties reflect both the context number and the filename they're in, so if you rename the file, you should also rename the properties.
  • Edit the property
com.openexchange.contacts.ldap.context10.MailingLists.baseDN_users=dc=example,dc=com

to reflect your installation. The example above assumes a UCS domain called example.com.

In the property

com.openexchange.contacts.ldap.context10.MailingLists.foldername=Mailing Lists

specify the name of the public folder in the OX web interface that will contain the imported data.

The property

com.openexchange.contacts.ldap.context10.MailingLists.mappingfile=mapping.openldap.mailinglists.properties

specifies the mapping file which will be created in the next step. If you name that file differently, adjust this property too.

  • create a config file in the main contacts-ldap config dir defining the mapping between LDAP and open-xchange fields in the main contacts-ldap config directory (not in the context subdirectory):
touch /opt/open-xchange/etc/groupware/contacts-ldap/mapping.openldap.mailinglists.properties
  • The content of the file should look like this:
#################
#
# Mappings
# The left side contains the values in OX, and the right side contains the  value name for ldap

# This part contains the openLdap mapping

# Required
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.uniqueid            = cn

# Optional
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.displayname         = cn
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.surname             = cn
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.email1              = mailPrimaryAddress

# we don't show distributionlists at all, so this is not used, but there's an  exception when it's not there
com.openexchange.contacts.ldap.mapping.openldap.mailinglists.distributionuid = uid

Restart the OX groupware server

/etc/init.d/open-xchange-groupware restart

Check the configuration

  • Login as a normal user
  • Navigate to "Public folders"
  • The list of public folders should contain a new folder now, containing the mailing lists created in the UCS Directory Manager web frontend.

If you want to rename the public folder, do so in the contacts-ldap configuration file as explained above and restart the groupware. The folder with the old name will not disappear automatically, but can simply be deleted in the OX web interface by the oxadmin user.

Please note that the contacts imported by contacts-ldap are in some cases only visible in the OX web interface when explicitly searched for. For example, to write an email to one of the imported mailing lists, follow these steps:

  • Click on the "New Email" button in the OX web interface
  • Click on the "To:" or "Cc:" button to open the search window
  • Uncheck the box "Search all contact folders"
  • Click on "Contact folder..." and select the public folder that contains the imported mailing lists
  • Enter the name, or the part of a name of a mailing list (without wildcards) in the "Search" field and click "Go"
  • Click on the desired mailing list and on "Add To:", "Add Cc:" or "Add Bcc:"

Alternatively, it is possible to create a new email to one of the mailing lists directly from the public folder:

  • Navigate to the public folder that contains the imported mailing lists
  • Select a mailing list by clicking on it
  • Click on "Detail" in the panel in the upper part of the OX window
  • Create a new email by clicking directly on the email address of the mailing list.