Re: [Exim] Exim 4 and mailman

Top Page
Delete this message
Reply to this message
Author: John Koenig
Date:  
To: exim-users
Subject: Re: [Exim] Exim 4 and mailman
Well.... I have been doing my best to take in the advice of the good people on this list (as well as reading lots of documentation)... Maybe someone could comment on which docs are most useful to look at for my situation.

I have examined:

     The Exim Specification - Version 4.0x
and
     <http://www.exim.org/howto/mailman.html> (not updated for v4)



and a couple of Exim configure files contributed to
from some generous/kind Exim users...

---------------

Here is the test case scenario:

When I attempt to send mail to the recipient that represents the mailing list, i.e. <test@???>

the result is mail returned to the sender with the following error message:


#####################################
# Error message returned to sender #
#####################################

This message was created automatically by mail delivery software (Exim).

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  test@???
    local delivery failed


##############



Here is pertinent bits from my Exim configure file.

### Global Macros defined at top of file:

# Variable and Macros
#

# Home dir for your Mailman installation
MAILMAN_WRAP=/usr/local/mailman/mail/wrapper
MAILMAN_HOME=/var/mailman

# User and group for Mailman, should match your --with-mail-gid
# switch to Mailman's configure script.
MAILMAN_UID=mailman
MAILMAN_GID=mailman


.
.
.

## I will show all routers since ordering is significant...


#                      ROUTERS CONFIGURATION                         #
######################################################################



begin routers


# domain_literal:
# driver = ipliteral
# transport = remote_smtp

dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 127.0.0.0/8
no_more


mailman_main_router:
    driver = accept
    require_files = MAILMAN_HOME/lists/${lc::$local_part}/config.db
    transport = mailman_transport


mailman_router:
    driver = accept
    require_files = MAILMAN_HOME/lists/${lc::$local_part}/config.db
    local_part_suffix = "-bounces:-bounces+*:-confirm+*:-join:-leave:-owner:-request:-admin"
    transport = mailman_transport



system_aliases:
driver = redirect
#allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/aliases}}
# user = exim
file_transport = address_file
pipe_transport = address_pipe


userforward:
driver = redirect
check_local_user
file = $home/.forward
no_verify
no_expn
check_ancestor
# allow_filter
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply


# This router matches local user mailboxes.

localuser:
driver = accept
check_local_user
transport = local_delivery

### End Routers

.
.
.



#                      TRANSPORTS CONFIGURATION                      #
######################################################################




mailman_transport:
    driver = pipe
    # In case you wonder, substr_2 removes the leading '-'
    # and the regex removes optional +foo=hostname that can be after -bounce
    command = MAILMAN_WRAP "${if def:local_part_suffix{${substr_2:{${sg{${lc:$local_part_suffix}}{\\\\\+.*}{}}}}{post}}" ${lc:$local_part}
    current_directory = MAILMAN_HOME
    home_directory = MAILMAN_HOME
    user = MAILMAN_UID
    group = MAILMAN_GID