# HG changeset patch # User Paul Boddie # Date 1445380056 -7200 # Node ID f35f4ef71c0ff4a272d414fc9cfd321a6370aba4 # Parent 9e0b8583beda498930e7554fd3a115baba3a5087 Added more dependency information and introduced the start of "simple" identity support for Exim, moving LDAP configuration files into their own directory. diff -r 9e0b8583beda -r f35f4ef71c0f README.txt --- a/README.txt Tue Oct 20 20:01:37 2015 +0200 +++ b/README.txt Wed Oct 21 00:27:36 2015 +0200 @@ -131,7 +131,7 @@ routing or account querying. However, example configuration files are provided that demonstrate the use of LDAP to identify mail recipients: -For Exim (in conf/exim)... +For Exim with LDAP (in conf/exim/ldap)... 010_exim4-config_people_outgoing Defines recipients and outgoing mail routing @@ -152,6 +152,19 @@ situations, examples of maintaining recipient information using a simpler approach are provided: +For Exim without LDAP (in conf/exim/simple)... + + 010_exim4-config_people_outgoing Defines recipients and outgoing + mail routing + 890_exim4-config_ldap_people ... + 890_exim4-config_ldap_resources ... + + virtual_people Defines recipient identities + virtual_resources belonging to known domains + + virtual_domains Defines recipient domains + virtual_people_outgoing Defines sender addresses + For Postfix without LDAP (in conf/postfix/simple)... main.cf.example Defines recipients and outgoing @@ -276,8 +289,17 @@ The software itself requires the following packages: + Python: python pytz: python-tz The management Web interface requires the following packages: + Apache: apache2 Babel: python-babel + +Although not necessarily within the scope of the deployment of this software, +the following mail storage solutions would be used to receive and hold +messages: + + Cyrus: cyrus-imapd + Dovecot: dovecot-imapd dovecot-ldap dovecot-lmtpd diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/010_exim4-config_people_outgoing --- a/conf/exim/010_exim4-config_people_outgoing Tue Oct 20 20:01:37 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ -LDAP_PERSON_OUTGOING_QUERY = (&(|(mail=${quote_ldap:${sender_address_local_part}}@${sender_address_domain})(alias=${quote_ldap:${sender_address_local_part}}@${sender_address_domain}))(objectclass=inetorgperson)) - -people_outgoing: - debug_print = "R: person_outgoing for $sender_address_local_part@$sender_address_domain" - driver = accept - unseen - no_expn - no_verify - condition = ${if eq {}{${lookup ldap{ \ - user="$ldap_service_bind_dn" \ - pass=$ldap_service_password \ - ldap://$ldap_host:$ldap_port/$ldap_base_dn?mail?sub?LDAP_PERSON_OUTGOING_QUERY} \ - }}{no}{yes}} - transport = people_outgoing_transport diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/890_exim4-config_ldap_people --- a/conf/exim/890_exim4-config_ldap_people Tue Oct 20 20:01:37 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -LDAP_PERSON_QUERY = (&(|(mail=${quote_ldap:${local_part}}@${domain})(alias=${quote_ldap:${local_part}}@${domain}))(objectclass=inetorgperson)) - -ldap_person: - debug_print = "R: ldap_person for $local_part@$domain" - driver = accept - condition = ${if eq {}{${lookup ldap{ \ - user="$ldap_service_bind_dn" \ - pass=$ldap_service_password \ - ldap://$ldap_host:$ldap_port/$ldap_base_dn?mail?sub?LDAP_PERSON_QUERY} \ - }}{no}{yes}} - transport = people_transport - cannot_route_message = Unknown user diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/890_exim4-config_ldap_resources --- a/conf/exim/890_exim4-config_ldap_resources Tue Oct 20 20:01:37 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -LDAP_RESOURCE_QUERY = (&(|(mail=${quote_ldap:${local_part}}@${domain})(alias=${quote_ldap:${local_part}}@${domain}))(&(!(objectclass=inetOrgPerson))(objectclass=mailRecipient))) - -ldap_resource: - debug_print = "R: ldap_resource for $local_part@$domain" - driver = accept - condition = ${if eq {}{${lookup ldap{ \ - user="$ldap_service_bind_dn" \ - pass=$ldap_service_password \ - ldap://$ldap_host:$ldap_port/$ldap_base_dn?mail?sub?LDAP_RESOURCE_QUERY} \ - }}{no}{yes}} - transport = resources_transport - cannot_route_message = Unknown user diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/ldap/010_exim4-config_people_outgoing --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/exim/ldap/010_exim4-config_people_outgoing Wed Oct 21 00:27:36 2015 +0200 @@ -0,0 +1,14 @@ +LDAP_PERSON_OUTGOING_QUERY = (&(|(mail=${quote_ldap:${sender_address_local_part}}@${sender_address_domain})(alias=${quote_ldap:${sender_address_local_part}}@${sender_address_domain}))(objectclass=inetorgperson)) + +people_outgoing: + debug_print = "R: person_outgoing for $sender_address_local_part@$sender_address_domain" + driver = accept + unseen + no_expn + no_verify + condition = ${if eq {}{${lookup ldap{ \ + user="$ldap_service_bind_dn" \ + pass=$ldap_service_password \ + ldap://$ldap_host:$ldap_port/$ldap_base_dn?mail?sub?LDAP_PERSON_OUTGOING_QUERY} \ + }}{no}{yes}} + transport = people_outgoing_transport diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/ldap/890_exim4-config_ldap_people --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/exim/ldap/890_exim4-config_ldap_people Wed Oct 21 00:27:36 2015 +0200 @@ -0,0 +1,12 @@ +LDAP_PERSON_QUERY = (&(|(mail=${quote_ldap:${local_part}}@${domain})(alias=${quote_ldap:${local_part}}@${domain}))(objectclass=inetorgperson)) + +ldap_person: + debug_print = "R: ldap_person for $local_part@$domain" + driver = accept + condition = ${if eq {}{${lookup ldap{ \ + user="$ldap_service_bind_dn" \ + pass=$ldap_service_password \ + ldap://$ldap_host:$ldap_port/$ldap_base_dn?mail?sub?LDAP_PERSON_QUERY} \ + }}{no}{yes}} + transport = people_transport + cannot_route_message = Unknown user diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/ldap/890_exim4-config_ldap_resources --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/exim/ldap/890_exim4-config_ldap_resources Wed Oct 21 00:27:36 2015 +0200 @@ -0,0 +1,12 @@ +LDAP_RESOURCE_QUERY = (&(|(mail=${quote_ldap:${local_part}}@${domain})(alias=${quote_ldap:${local_part}}@${domain}))(&(!(objectclass=inetOrgPerson))(objectclass=mailRecipient))) + +ldap_resource: + debug_print = "R: ldap_resource for $local_part@$domain" + driver = accept + condition = ${if eq {}{${lookup ldap{ \ + user="$ldap_service_bind_dn" \ + pass=$ldap_service_password \ + ldap://$ldap_host:$ldap_port/$ldap_base_dn?mail?sub?LDAP_RESOURCE_QUERY} \ + }}{no}{yes}} + transport = resources_transport + cannot_route_message = Unknown user diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/simple/010_exim4-config_people_outgoing --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/exim/simple/010_exim4-config_people_outgoing Wed Oct 21 00:27:36 2015 +0200 @@ -0,0 +1,9 @@ +people_outgoing: + debug_print = "R: person_outgoing for $sender_address_local_part@$sender_address_domain" + driver = accept + unseen + no_expn + no_verify + domains = lsearch;/etc/exim4/virtual_domains + senders = lsearch;/etc/exim4/virtual_people_outgoing + transport = people_outgoing_transport diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/simple/890_exim4-config_people --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/exim/simple/890_exim4-config_people Wed Oct 21 00:27:36 2015 +0200 @@ -0,0 +1,7 @@ +ldap_person: + debug_print = "R: ldap_person for $local_part@$domain" + driver = accept + domains = lsearch;/etc/exim4/virtual_domains + local_parts = lsearch;/etc/exim4/virtual_people + transport = people_transport + cannot_route_message = Unknown user diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/simple/890_exim4-config_resources --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/exim/simple/890_exim4-config_resources Wed Oct 21 00:27:36 2015 +0200 @@ -0,0 +1,7 @@ +ldap_resource: + debug_print = "R: ldap_resource for $local_part@$domain" + driver = accept + domains = lsearch;/etc/exim4/virtual_domains + local_parts = lsearch;/etc/exim4/virtual_resources + transport = resources_transport + cannot_route_message = Unknown user diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/simple/virtual_domains --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/exim/simple/virtual_domains Wed Oct 21 00:27:36 2015 +0200 @@ -0,0 +1,1 @@ +example.com: diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/simple/virtual_people --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/exim/simple/virtual_people Wed Oct 21 00:27:36 2015 +0200 @@ -0,0 +1,2 @@ +paul.boddie: +vincent.vole: diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/simple/virtual_people_outgoing --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/exim/simple/virtual_people_outgoing Wed Oct 21 00:27:36 2015 +0200 @@ -0,0 +1,2 @@ +paul.boddie@example.com: +vincent.vole@example.com: diff -r 9e0b8583beda -r f35f4ef71c0f conf/exim/simple/virtual_resources --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/conf/exim/simple/virtual_resources Wed Oct 21 00:27:36 2015 +0200 @@ -0,0 +1,3 @@ +resource-car-porsche911: +resource-room-confroom: +resource-room-sauna: