Date: Thu, 26 Nov 1998 09:39:52 +0000 From: David M Walker Thanks to Philip and others I now have my ISP style config built and therefore am posting the final configuration fragments to the list in case anyone else wants to do a similar thing ###################################################################### # This configuration fragment is for use with an ISP type solution # Each client has their own directory that contains their own # editable passwd, alias etc type files. Furthemore if they create # a local user then that user can also have a a .forward file and/or # a .autoreply file. # # Files and Directories # Password file for a domain # /clients/${domain}/etc/passwd # Alias file for a domain # /clients/${domain}/etc/aliases # Directory where users mail for a domain is stored # /clients/${domain}/mail/ # Location of file with a list of domains # /clients/utils/data/domains ###################################################################### # TRANPORTS CONFIGURATION # ###################################################################### # This transport is used for local delivery to user mailboxes. virtual_localdelivery: driver = appendfile file = /clients/${domain}/mail/${local_part} user = ${lookup{$local_part}lsearch{/etc/passwd}{$value}{exim}} group = mail mode = 0660 # This transport is used to handly autoreplys auto_transport: driver = autoreply from = $local_part@$domain to = $sender_address subject = "Reply re: $header_subject:" file = "${extract{5}{:}{${expand:${lookup{$local_part}lsearch{/clients/${domain}/etc/passwd}{$value}}}}}/.autoreply" user = exim # This transport is used for handling pipe addresses generated by alias # or .forward files. address_pipe: driver = pipe return_output # This transport is used for handling file addresses generated by alias # or .forward files. address_file: driver = appendfile # This transport is used for handling file addresses generated by alias # or .forward files if the path ends in "/". address_directory: driver = appendfile no_from_hack prefix = "" suffix = "" # This transport is used for handling autoreplies generated by the filtering # option of the forwardfile director. address_reply: driver = autoreply # This transport is used for delivering messages over SMTP connections. remote_smtp: driver = smtp command_timeout = 1m, connect_timeout = 10s end ###################################################################### # DIRECTORS CONFIGURATION # ###################################################################### # Handles .autoreply files auto_director: driver = smartuser transport = auto_transport require_files = root:${extract{5}{:}{${expand:${lookup{$local_part}lsearch{/clients/${domain}/etc/passwd}{$value}}}}}/.autoreply condition = ${if eq{$sender_address}{}{no}{yes}} unseen # Handles any .forward files userforward: driver = forwardfile check_local_user = false #file_directory = "${extract{5}{:}{${expand:${lookup{$local_part}lsearch{/clients/${domain}/etc/passwd}{$value}}}}}" #file = .forward file = "${extract{5}{:}{${expand:${lookup{$local_part}lsearch{/clients/${domain}/etc/passwd}{$value}}}}}/.forward" user = root no_verify check_ancestor filter # This director matches local user mailboxes. virtual_localuser: driver = aliasfile transport = virtual_localdelivery domains = lsearch;/clients/utils/data/domains file = /clients/${domain}/etc/passwd search_type = lsearch # This director matches anything in the aliases virtual_alias: driver = aliasfile domains = lsearch;/clients/utils/data/domains file = /clients/${domain}/etc/aliases search_type = lsearch* qualify_preserve_domain end