# HG changeset patch # User Paul Boddie # Date 1422228552 -3600 # Node ID 2cbe2914863f8d0248b704f27bd15a50a69124ec # Parent 2d5ef1aaf3c9de3ff4423b3dd3e81188d33999f7 Moved LDAP-related configuration files into a subdirectory for Postfix. Removed references to the superfluous mydestination.cf file (originating from the associatedDomain support provided by Kolab). Reformatted the README.txt file, adding the pytz dependency. diff -r 2d5ef1aaf3c9 -r 2cbe2914863f README.txt --- a/README.txt Sun Jan 25 21:25:00 2015 +0100 +++ b/README.txt Mon Jan 26 00:29:12 2015 +0100 @@ -55,7 +55,8 @@ ----------------------- The tools/install.sh script should install the software in appropriate -locations. +locations. See the prerequisites below for other software that will be +required. Configuring Other Software -------------------------- @@ -75,18 +76,18 @@ the integration of agent programs into the mail processing pipeline. Thus, the following files are of particular interest: -For Exim... +For Exim (in conf/exim)... - conf/exim/30_exim4-config_people Integration of agent programs - conf/exim/30_exim4-config_people_outgoing ... - conf/exim/30_exim4-config_resources ... + 30_exim4-config_people Integration of agent programs + 30_exim4-config_people_outgoing ... + 30_exim4-config_resources ... -For Postfix... +For Postfix (in conf/postfix)... - conf/postfix/master.cf.items Integration of agent programs (for - inclusion in master.cf) - conf/postfix/transport Configuration of agent transports - conf/postfix/virtual Configuration of outgoing mail routing + master.cf.items Integration of agent programs (for + inclusion in master.cf) + transport Configuration of agent transports + virtual Configuration of outgoing mail routing Such files need adjusting for the deployment environment so that, for example, the example.com domain would be replaced with a suitable value. @@ -102,23 +103,23 @@ routing or account querying. However, example configuration files are provided that demonstrate the use of LDAP to identify mail recipients: -For Exim... +For Exim (in conf/exim)... - conf/exim/010_exim4-config_people_outgoing Defines recipients and - outgoing mail routing - conf/exim/890_exim4-config_ldap_people ... - conf/exim/890_exim4-config_ldap_resources ... + 010_exim4-config_people_outgoing Defines recipients and outgoing + mail routing + 890_exim4-config_ldap_people ... + 890_exim4-config_ldap_resources ... -For Postfix... +For Postfix with LDAP (in conf/postfix/ldap)... - conf/postfix/local_recipient_maps.cf Defines local virtual - recipients - conf/postfix/main.cf.example Defines recipients and outgoing - mail routing (for inclusion in - main.cf) - conf/postfix/virtual_alias_maps_people.cf - conf/postfix/virtual_alias_maps_people_outgoing.cf - conf/postfix/virtual_alias_maps_resources.cf + main.cf.example Defines recipients and outgoing + mail routing (for inclusion in + main.cf) + + local_recipient_maps.cf Defines local virtual recipients + virtual_alias_maps_people.cf + virtual_alias_maps_people_outgoing.cf + virtual_alias_maps_resources.cf With the exception of the sender_bcc_maps setting in Postfix's main.cf, the above recipient identification configuration examples can be disregarded in @@ -131,11 +132,14 @@ Relevant LDAP resources for structuring recipient information include the following: - RFC 4524 http://tools.ietf.org/html/rfc4524 Defines the mail attribute - RFC 2798 http://tools.ietf.org/html/rfc2798 Defines the inetOrgPerson - object class - RFC 2739 https://tools.ietf.org/html/rfc2739 Defines the calEntry object - class supporting calFBURL + RFC 4524 Defines the mail attribute + http://tools.ietf.org/html/rfc4524 + + RFC 2798 Defines the inetOrgPerson object + http://tools.ietf.org/html/rfc2798 class + + RFC 2739 Defines the calEntry object class + https://tools.ietf.org/html/rfc2739 supporting calFBURL An additional draft RFC describes the mailRecipient object class: @@ -170,6 +174,10 @@ Exim: exim4-daemon-heavy Postfix: postfix postfix-ldap +The software itself requires the following packages: + + pytz: python-tz + The management Web interface requires the following packages: Babel: python-babel diff -r 2d5ef1aaf3c9 -r 2cbe2914863f conf/postfix/ldap/local_recipient_maps.cf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/postfix/ldap/local_recipient_maps.cf Mon Jan 26 00:29:12 2015 +0100 @@ -0,0 +1,11 @@ +server_host = $ldap_host +server_port = $ldap_port +version = 3 +search_base = $ldap_base_dn +scope = sub + +bind_dn = $ldap_service_bind_dn +bind_pw = $ldap_service_password + +query_filter = (&(|(mail=%s)(alias=%s))(objectclass=inetorgperson)) +result_attribute = mail diff -r 2d5ef1aaf3c9 -r 2cbe2914863f conf/postfix/ldap/main.cf.example --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/postfix/ldap/main.cf.example Mon Jan 26 00:29:12 2015 +0100 @@ -0,0 +1,5 @@ +local_recipient_maps = ldap:/etc/postfix/ldap/local_recipient_maps.cf +virtual_alias_maps = $alias_maps, hash:/etc/postfix/virtual, + ldap:/etc/postfix/ldap/virtual_alias_maps_resources.cf, + ldap:/etc/postfix/ldap/virtual_alias_maps_people.cf +sender_bcc_maps = ldap:/etc/postfix/ldap/virtual_alias_maps_people_outgoing.cf diff -r 2d5ef1aaf3c9 -r 2cbe2914863f conf/postfix/ldap/virtual_alias_maps_people.cf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/postfix/ldap/virtual_alias_maps_people.cf Mon Jan 26 00:29:12 2015 +0100 @@ -0,0 +1,12 @@ +server_host = $ldap_host +server_port = $ldap_port +version = 3 +search_base = $ldap_base_dn +scope = sub + +bind_dn = $ldap_service_bind_dn +bind_pw = $ldap_service_password + +query_filter = (&(|(mail=%s)(alias=%s))(objectclass=inetorgperson)) +result_attribute = mail +result_format = people+%s diff -r 2d5ef1aaf3c9 -r 2cbe2914863f conf/postfix/ldap/virtual_alias_maps_people_outgoing.cf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/postfix/ldap/virtual_alias_maps_people_outgoing.cf Mon Jan 26 00:29:12 2015 +0100 @@ -0,0 +1,12 @@ +server_host = $ldap_host +server_port = $ldap_port +version = 3 +search_base = $ldap_base_dn +scope = sub + +bind_dn = $ldap_service_bind_dn +bind_pw = $ldap_service_password + +query_filter = (&(|(mail=%s)(alias=%s))(objectclass=inetorgperson)) +result_attribute = mail +result_format = people-outgoing+%s diff -r 2d5ef1aaf3c9 -r 2cbe2914863f conf/postfix/ldap/virtual_alias_maps_resources.cf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/postfix/ldap/virtual_alias_maps_resources.cf Mon Jan 26 00:29:12 2015 +0100 @@ -0,0 +1,12 @@ +server_host = $ldap_host +server_port = $ldap_port +version = 3 +search_base = $ldap_base_dn +scope = sub + +bind_dn = $ldap_service_bind_dn +bind_pw = $ldap_service_password + +query_filter = (&(|(mail=%s)(alias=%s))(&(!(objectclass=inetOrgPerson))(objectclass=mailRecipient))) +result_attribute = mail +result_format = resources+%s diff -r 2d5ef1aaf3c9 -r 2cbe2914863f conf/postfix/local_recipient_maps.cf --- a/conf/postfix/local_recipient_maps.cf Sun Jan 25 21:25:00 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -server_host = $ldap_host -server_port = $ldap_port -version = 3 -search_base = $ldap_base_dn -scope = sub - -domain = ldap:/etc/postfix/ldap/mydestination.cf - -bind_dn = $ldap_service_bind_dn -bind_pw = $ldap_service_password - -query_filter = (&(|(mail=%s)(alias=%s))(objectclass=inetorgperson)) -result_attribute = mail diff -r 2d5ef1aaf3c9 -r 2cbe2914863f conf/postfix/main.cf.example --- a/conf/postfix/main.cf.example Sun Jan 25 21:25:00 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -local_recipient_maps = ldap:/etc/postfix/ldap/local_recipient_maps.cf -virtual_alias_maps = $alias_maps, hash:/etc/postfix/virtual, ldap:/etc/postfix/ldap/virtual_alias_maps_resources.cf, ldap:/etc/postfix/ldap/virtual_alias_maps_people.cf -sender_bcc_maps = ldap:/etc/postfix/ldap/virtual_alias_maps_people_outgoing.cf diff -r 2d5ef1aaf3c9 -r 2cbe2914863f conf/postfix/virtual_alias_maps_people.cf --- a/conf/postfix/virtual_alias_maps_people.cf Sun Jan 25 21:25:00 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -server_host = $ldap_host -server_port = $ldap_port -version = 3 -search_base = $ldap_base_dn -scope = sub - -domain = ldap:/etc/postfix/ldap/mydestination.cf - -bind_dn = $ldap_service_bind_dn -bind_pw = $ldap_service_password - -query_filter = (&(|(mail=%s)(alias=%s))(objectclass=inetorgperson)) -result_attribute = mail -result_format = diff -r 2d5ef1aaf3c9 -r 2cbe2914863f conf/postfix/virtual_alias_maps_people_outgoing.cf --- a/conf/postfix/virtual_alias_maps_people_outgoing.cf Sun Jan 25 21:25:00 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -server_host = $ldap_host -server_port = $ldap_port -version = 3 -search_base = $ldap_base_dn -scope = sub - -domain = ldap:/etc/postfix/ldap/mydestination.cf - -bind_dn = $ldap_service_bind_dn -bind_pw = $ldap_service_password - -query_filter = (&(|(mail=%s)(alias=%s))(objectclass=inetorgperson)) -result_attribute = mail -result_format = people-outgoing+%s diff -r 2d5ef1aaf3c9 -r 2cbe2914863f conf/postfix/virtual_alias_maps_resources.cf --- a/conf/postfix/virtual_alias_maps_resources.cf Sun Jan 25 21:25:00 2015 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -server_host = $ldap_host -server_port = $ldap_port -version = 3 -search_base = $ldap_base_dn -scope = sub - -domain = ldap:/etc/postfix/ldap/mydestination.cf - -bind_dn = $ldap_service_bind_dn -bind_pw = $ldap_service_password - -query_filter = (&(|(mail=%s)(alias=%s))(&(!(objectclass=inetOrgPerson))(objectclass=mailRecipient))) -result_attribute = mail -result_format =