Date: Tue, 10 Apr 2001 16:01:16 -0700 From: Thomas Robinson This configuration removes a lot of the aliases, and automates a lot of the other functions based on whether the files / directories exist. The number 73 in the listresend director must be modified to match the UID of Majordomo on the host system. Only three aliases per list are needed: -approval -owner owner- # Lots of stuff snipped . . . trusted_users = mail:majordomo end ###################################################################### # TRANPORTS CONFIGURATION # ###################################################################### # More stuff snipped . . . # This transport is used for processing *-request addresses # through Majordomo majordomo: driver = pipe user = majordomo command = "/usr/local/mail/majordomo/wrapper majordomo \ -C /usr/local/mail/${domain}/majordomo.cf \ -l ${local_part}" return_fail_output = true # This transport is used for processing messages through the # majordomo resend mechanism resend: driver = pipe user = majordomo command = "/usr/local/mail/majordomo/wrapper resend \ -C /usr/local/mail/${domain}/majordomo.cf \ -l ${local_part} ${local_part}\@${domain}" return_fail_output = true # This transport handles creation of digests for majordomo. digestify: driver = pipe user = majordomo command = "/usr/local/mail/majordomo/wrapper digest \ -c /usr/local/mail/${domain}/majordomo.cf \ -r -C -l ${local_part}-digest ${local_part}-digest\@${domain}" return_fail_output = true # This transport handles the archive function archivate: driver = pipe user = majordomo command = "/usr/local/mail/majordomo/wrapper archive2.pl \ -C /usr/local/mail/${domain}/majordomo.cf \ -f /usr/local/mail/${domain}/lists/${local_part}.archive/${local_part} \ -M -a" return_fail_output = true end ###################################################################### # DIRECTORS CONFIGURATION # # Specifies how local addresses are handled # ###################################################################### # ORDER DOES MATTER # # A local address is passed to each in turn until it is accepted. # ###################################################################### # Local addresses are those with a domain that matches some item # in the "local_domains" setting above, or those which are passed # back from the routers because of a "self=local" setting (not # used in this configuration). # This director handles list processing of *-request addresses. # Note that if there is no file, the message will NOT get passed # to majordomo. listrequest: driver = smartuser suffix = -request require_files = +/usr/local/mail/${domain}/lists/${local_part}.config transport = majordomo # This director handles list processing when sending through the # majordomo RESEND mechanism. If there is no file, the message # will NOT get passed to majordomo. listresend: driver = smartuser suffix = -digest suffix_optional = true condition = ${if eq {${originator_uid}}{73} {no}{yes}} require_files = +/usr/local/mail/${domain}/lists/${local_part}${local_part_suffix}.config transport = resend # This director handles processing of the archive files for a # list. archives: driver = smartuser suffix = -digest suffix_optional = true require_files = +/usr/local/mail/${domain}/lists/${local_part}.archive:!+/usr/local/mail/${domain}/lists/${local_part}-digest.config transport = archivate unseen = true # This director handles the list-digest processing. digests: driver = smartuser require_files = +/usr/local/mail/${domain}/lists/${local_part}-digest.config transport = digestify unseen = true # This director handles list processing. listout: driver = forwardfile require_files = +/usr/local/mail/${domain}/lists/${local_part}.config file = /usr/local/mail/${domain}/lists/${local_part} modemask = 2 user = majordomo no_check_local_user forbid_pipe forbid_file one_time skip_syntax_errors # This director handles aliasing using a traditional /etc/aliases # file. If any of your aliases expand to pipes or files, you # will need to set up a user and a group for these deliveries to # run under. You can do this by uncommenting the "user" option # below (changing the user name as appropriate) and adding a # "group" option if necessary. system_aliases: driver = aliasfile file = /etc/mail/aliases/${domain} search_type = lsearch user = mail pipe_transport = address_pipe # The rest of the file goes here . . .