folks,
i am trying to make it easier to manage several (>100) majordomo mailing lists. exim is running under freebsd
2.2.1-RELEASE. i want to use seperate aliases files for each list and i want to be able to create a new list
simply by copying test-l.aliases to new-list.aliases. this would allow me to easily move lists among different
machines. but this configuration is not working.
i have the following directors in my exim configure file:
majordomo2:
prefix = owner-,
prefix_optional,
suffix = -owner:-approval:-outgoing:-request,
suffix_optional,
driver = smartuser,
require_files = /usr/local/majordomo/lists/${local_part}.aliases;
new_address ="\
${if and{{!def:local_part_prefix}{!def:local_part_suffix}}{-mail}\
{${local_part_prefix}${local_part_suffix}}}\
-md-${local_part}@${domain}
majordomo3:
suffix = -md-*,
driver = aliasfile;
file = /usr/local/majordomo/lists/${s_4_25:$local_part_suffix}.aliases,
optional,
search_type = lsearch,
expand,
skip_syntax_errors,
user = majordom
my alias file /usr/localmajordomo/lists/test-l.aliases:
owner-:Postmaster
owner--outgoing:owner-${s_4_25:$local_part_suffix}
-owner:owner-${s_4_25:$local_part_suffix}
-approval:owner-${s_4_25:$local_part_suffix}
-mail: "|/usr/local/majordomo/wrapper resend -l ${s_4_25:$local_part_suffix} -h ${primary_hostname}
${s_4_25:$local_part_suffix}-outgoing"
-outgoing::include:/usr/local/majordomo/lists/${s_4_25:$local_part_suffix},
"|/usr/local/majordomo/wrapper archive -a -m -f
/usr/local/majordomo/lists/${s_4_25:$local_part_suffix}.archive/${s_4_25:$local_part_suffix}.archive"
"|/usr/local/majordomo/wrapper digest -r -C -l ${s_4_25:$local_part_suffix}-digest
${s_4_25:$local_part_suffix}-digest-outgoing",
hypermail-${s_4_25:$local_part_suffix}
-request: "|/usr/local/majordomo/wrapper majordomo -l ${s_4_24:$local_part_suffix}"
if i change the suffix in majordomo2 to just 1 suffix as in "suffix = -request" then the -request address works as
expected. here is a snippet of the debug output with "suffix = -request":
address test-l-request@???
local_part=test-l-request domain=dortmunder.mortykai.com local=1
directing test-l-request@???
stripped suffix -request
majordomo2 director called for test-l-request@???
generated new address: -request-md-test-l@???
majordomo2 director succeeded for test-l
transport: <none>
address -request-md-test-l@???
local_part=-request-md-test-l domain=dortmunder.mortykai.com local=1
directing -request-md-test-l@???
majordomo2 director skipped: file existence failure
stripped suffix -md-test-l
majordomo3 director: file = /usr/local/majordomo/lists/test-l.aliases search type = 48
search_open (0) /usr/local/majordomo/lists/test-l.aliases
file lookup required for -request in /usr/local/majordomo/lists/test-l.aliases
parse_extract_addresses: "|/usr/local/majordomo/wrapper majordomo -l test-l"
extracted: |/usr/local/majordomo/wrapper majordomo -l test-l
majordomo3 director generated |/usr/local/majordomo/wrapper majordomo -l test-l (pipe, file, or autoreply)
uid=54 gid=54 home=null
majordomo3 director succeeded for -request
transport: <none>
-request-md-test-l@??? -> |/usr/local/majordomo/wrapper majordomo -l test-l
the owner- address also works the same way.
with "suffix = -approval" the -approval address works until it gets expanded to the owner- address and then
majordomo2 is skipped. here exim is functioning correctly but maybe exim should check the address before
the pre/suffix is stripped when determining if the address has been previously directed.
the -owner address also suffers from this.
address test-l-approval@???
local_part=test-l-approval domain=dortmunder.mortykai.com local=1
directing test-l-approval@???
stripped suffix -approval
majordomo2 director called for test-l-approval@???
generated new address: -approval-md-test-l@???
majordomo2 director succeeded for test-l
transport: <none>
address -approval-md-test-l@???
local_part=-approval-md-test-l domain=dortmunder.mortykai.com local=1
directing -approval-md-test-l@???
majordomo2 director skipped: file existence failure
stripped suffix -md-test-l
majordomo3 director: file = /usr/local/majordomo/lists/test-l.aliases search type = 48
search_open (0) /usr/local/majordomo/lists/test-l.aliases
file lookup required for -approval in /usr/local/majordomo/lists/test-l.aliases
parse_extract_addresses: owner-test-l
extracted: owner-test-l
majordomo3 director generated owner-test-l@???
uid=unset gid=unset home=null
majordomo3 director succeeded for -approval
transport: <none>
address owner-test-l@???
local_part=owner-test-l domain=dortmunder.mortykai.com local=1
directing owner-test-l@???
stripped prefix owner-
majordomo2 director skipped: previously directed test-l
the docs say that the prefix and sffix options are string lists but with multiple suffixes, none are matched. here
is the debug output with "suffix = -outgoing:-request" and "no_suffix_optional":
address test-l-request@???
local_part=test-l-request domain=dortmunder.mortykai.com local=1
directing test-l-request@???
majordomo2 director skipped: suffix mismatch
and finally, i get sementation fault on the -outgoing address. here is the debug output with "suffix = -outgoing":
address test-l-outgoing@???
local_part=test-l-outgoing domain=dortmunder.mortykai.com local=1
directing test-l-outgoing@???
stripped suffix -outgoing
majordomo2 director called for test-l-outgoing@???
generated new address: -outgoing-md-test-l@???
majordomo2 director succeeded for test-l
transport: <none>
address -outgoing-md-test-l@???
local_part=-outgoing-md-test-l domain=dortmunder.mortykai.com local=1
directing -outgoing-md-test-l@???
majordomo2 director skipped: file existence failure
stripped suffix -md-test-l
majordomo3 director: file = /usr/local/majordomo/lists/test-l.aliases search type = 48
search_open (0) /usr/local/majordomo/lists/test-l.aliases
file lookup required for -outgoing in /usr/local/majordomo/lists/test-l.aliases
parse_extract_addresses: :include:/usr/local/majordomo/lists/test-l, "|/usr/local/majordomo/wrapper archive -a
-m -f /usr/local/majordomo/lists/test-l.archive/test-l.archive", "|/usr/local/majordomo/wrapper digest -r -C -l
test-l-digest test-l-digest-outgoing", hypermail-test-l
extracted: :include:/usr/local/majordomo/lists/test-l
parse_extract_addresses: morty@???
extracted: morty@???
extracted: |/usr/local/majordomo/wrapper archive -a -m -f /usr/local/majordomo/lists/test-l.archive/test-l.archive
extracted: |/usr/local/majordomo/wrapper digest -r -C -l test-l-digest test-l-digest-outgoing
extracted: hypermail-test-l
majordomo3 director generated hypermail-test-l@???
uid=unset gid=unset home=null
majordomo3 director generated |/usr/local/majordomo/wrapper digest -r -C -l test-l-digest test-l-digest-outgoing
(pipe, file, or autoreply)
uid=54 gid=54 home=null
majordomo3 director generated |/usr/local/majordomo/wrapper archive -a -m -f
/usr/local/majordomo/lists/test-l.archive/test-l.archive (pipe, file, or autoreply)
uid=54 gid=54 home=null
majordomo3 director generated morty@???
uid=unset gid=unset home=null
majordomo3 director succeeded for -outgoing
transport: <none>
address morty@???
local_part=morty domain=mortykai.com local=1
directing morty@???
Segmentation fault
here is my entire configuration:
######################################################################
# MAIN CONFIGURATION SETTINGS #
######################################################################
# primary_hostname =
# qualify_domain =
# qualify_recipient =
local_domains = mortykai.com:*.mortykai.com
never_users = root
# percent_hack_domains=*
# trusted_users = exim
freeze_tell_mailmaster
strip_excess_angle_brackets
strip_trailing_dot
end
######################################################################
# TRANPORTS CONFIGURATION #
######################################################################
local_delivery:
driver = appendfile;
file = /var/mail/${local_part},
address_pipe:
driver = pipe;
pipe_as_creator,
return_fail_output
address_file:
driver = appendfile
address_reply:
driver = autoreply
remote_smtp:
driver = smtp;
hypermail_pipe:
driver = pipe;
return_fail_output,
pipe_as_creator,
command = "/usr/local/bin/hypermail -i \
-c \"/usr/local/www/data/mail_archives/${local_part}/hm.conf\" \
-d \"/usr/local/www/data/mail_archives/${local_part}\" \
-l \"${local_part}\" -a \"..\" -b \"about.html\" -u"
end
######################################################################
# DIRECTORS CONFIGURATION #
######################################################################
#majordomo1:
# driver = aliasfile;
# file = /etc/aliases.majordomo,
# search_type = lsearch,
# skip_syntax_errors,
# user = majordom,
majordomo2:
prefix = owner-,
prefix_optional,
suffix = -owner:-approval:-outgoing:-request,
suffix_optional,
driver = smartuser,
require_files = /usr/local/majordomo/lists/${local_part}.aliases;
new_address ="\
${if and{{!def:local_part_prefix}{!def:local_part_suffix}}{-mail}\
{${local_part_prefix}${local_part_suffix}}}\
-md-${local_part}@${domain}
majordomo3:
suffix = -md-*,
driver = aliasfile;
file = /usr/local/majordomo/lists/${s_4_25:$local_part_suffix}.aliases,
optional,
search_type = lsearch,
expand,
skip_syntax_errors,
user = majordom
hypermail:
prefix = hypermail-,
driver = smartuser;
transport = hypermail_pipe,
system_aliases:
driver = aliasfile;
file = /etc/aliases,
search_type = lsearch
userforward:
no_verify,
driver = forwardfile;
file = .forward,
# filter
localuser:
driver = localuser,
transport = local_delivery;
# try the next machine
unknownuser:
driver = smartuser;
new_address = ${local_part}@???
end
######################################################################
# ROUTERS CONFIGURATION #
######################################################################
lookuphost:
driver = lookuphost,
transport = remote_smtp;
literal:
driver = ipliteral,
transport = remote_smtp;
end
######################################################################
# RETRY CONFIGURATION #
######################################################################
# Domain Error Retries
# ------ ----- -------
* * F,2h,15m; G,16h,2h,1.5; F,4d,8h
end
######################################################################
# REWRITE CONFIGURATION #
######################################################################
# End of Exim configuration file
-morty-
heard any good ones lately?
send them to
mailto:jokes@mortykai.com
-morty-
heard any good ones lately?
send them to
mailto:jokes@mortykai.com