exim 1.60 and majordomo

Página superior
Eliminar este mensaje
Responder a este mensaje
Autor: morty
Fecha:  
A: exim-users@lists.cam.ac.uk
Asunto: exim 1.60 and majordomo
hello again.

i finally got this to work. for anyone who manages several lists this should make life alot easier. i can spread
the lists around to different machines. my last director is a smartuser which simply passes the message to the
next machine. i can move a list from 1 machine to another just by transfering the list files. no more monkeying
around with alias files that are 1000 lines long. i hope someone else finds this useful.

i use 5 machines dedicated to majordomo. each machine hosts about 25 lists. each host is running apache
and has a hypermail archive of the lists that it hosts.

the aliases files can be identical for each list. comment out the digest, archive lines if theyre not needed. and
change owner addresses. no other edits are necessary.

id like to hear from anyone who has setup harvest to search hypermail archives.

also, has anyone ported the latest release of exim to freebsd?


# transports

# I use the config file "hm.cf" in the archive directory to override the label. 
# /usr/local/www/data/mail_archives/index.html file (the -a ".." in the command line) is redundant on each
# machine. it has links to all the mail lists referencing the appropriate machine for each list.
hypermail_pipe:
  driver = pipe;
  # errors will go to owner-majordomo
  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"



# directors

# This director handles mail sent to hypermail-listname. This address is included in the majordomo
# aliases files for outgoing mail
hypermail:
prefix = hypermail-,
driver = smartuser,
transport = hypermail_pipe;


# The following directors handle majordomo using seperate aliases files.
majordomo:
  driver = aliasfile;               
  file = /etc/aliases.majordomo,    
  search_type = lsearch,            
  user = majordom


# addr-md-list-digest -> digest-addr-md-list
majordomo_digest:
prefix = *-md-,
suffix = -digest,
driver = smartuser;
new_address = digest-${local_part_prefix}${local_part}@${domain}

# addr-md-list -> addr
majordomo_md:
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

# [owner-]list -> (owner | mail)-md-list
majordomo_owner:
  prefix = owner-,
  prefix_optional,
  driver = smartuser,
#  require_files = /usr/local/majordomo/lists/${local_part}.aliases;
  new_address = "${if def:local_part_prefix {${local_part_prefix}} {mail-}}\
    md-${local_part}@${domain}"


# [owner-]list-outgoing -> [owner-]outgoing-md-list
majordomo_outgoing:
prefix = owner-,
prefix_optional,
suffix = -outgoing,
driver = smartuser,
# require_files = /usr/local/majordomo/lists/${local_part}.aliases;
new_address = ${local_part_prefix}outgoing-md-${local_part}@${domain}

# list-request -> request-md-list
majordomo_request:
suffix = -request,
driver = smartuser,
# require_files = /usr/local/majordomo/lists/${local_part}.aliases;
new_address = request-md-${local_part}@${domain}

# list-approval -> approval-md-list
majordomo_approval:
suffix = -approval,
driver = smartuser,
# require_files = /usr/local/majordomo/lists/${local_part}.aliases;
new_address = approval-md-${local_part}@${domain}


/etc/aliases.majordomo:

majordomo: "|/usr/local/majordomo/wrapper majordomo"
majordomo-owner: Postmaster
owner-majordomo: majordomo-owner
majordom: majordomo-owner


/usr/local/majordomo/lists/test-l.aliases:

owner:Postmaster
digest-owner:owner-${s_4_24:$local_part_suffix}
owner-outgoing:owner-${s_4_25:$local_part_suffix}
digest-owner-outgoing:owner-${s_4_24:$local_part_suffix}
approval:owner-${s_4_25:$local_part_suffix}
digest-approval:owner-${s_4_24:$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"
digest-mail:${s_4_24:$local_part_suffix}
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}
digest-outgoing::include:/usr/local/majordomo/lists/${s_4_24:$local_part_suffix}-digest


request: "|/usr/local/majordomo/wrapper majordomo -l ${s_4_24:$local_part_suffix}"
digest-request: "|/usr/local/majordomo/wrapper majordomo -l ${s_4_24:$local_part_suffix}-digest"


the require_files options are commented out. they should be uncommented if you have non-majordomo
addresses of the form owner-user, user-outgoing, etc. that way the address wont be converted before the list
name is verified. If you do uncomment the require_files options, make sure you create an empty
listname-digest.aliases file for each digest or the digest addresses will fail.

good luck and thank you for providing such a feature rich, ultimately customizable mta.

-morty-

heard any good ones lately?
send them to mailto:jokes@mortykai.com