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
rgds
davidw
######################################################################
# 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
--
*** Exim information can be found at
http://www.exim.org/ ***