[Exim] 3.36 -> 4.05 Migration Problem

Top Page
Delete this message
Reply to this message
Author: Odhiambo G. Washington
Date:  
To: Exim Users
Subject: [Exim] 3.36 -> 4.05 Migration Problem
--
Dear Ladies/Gentlemen,

I am in the process of migrating my 3.36 production box to 4.05 but I have had a
hitch during test phase of the new configure file.

In the old setup I used /home/$local_part/.bouncelist as a way of helping the
clients specify addresses they wanted blocked. They would do this by sending
requests to our CS Dept who then can modify the file. When this file was absent
for any user, e-mails will still get delivered. Now with Exim-4, when I run a
test, it does look for this file and failing to find it, it barfs (fails):

[root@ns2]#./bin/exim -bt sales@???
LOG: MAIN PANIC DIE
failed to open /home/sales/.bouncelist when checking "/home/$local_part/.bouncelist": No such file or directory


I could create this file in all users home but that is not the solution I am
looking for since this file is _NOT_ mandatory.

[I'll run SA soon so pls just don't get there yet ;-)]


I am attaching a snippet of the configure file (ROUTERS SECTION ONLY).

My Question:

How do I tell Exim4 that if this file is not found it should just deliver the message??


Thanking you.




-Wash

--
Odhiambo Washington  <wash@???>    "The box said 'Requires
Wananchi Online Ltd.  www.wananchi.com      Windows 95, NT, or better,'
Tel: 254 2 313985-9   Fax: 254 2 313922     so I installed FreeBSD."
GSM: 254 72 743 223   GSM: 254 733 744 121  This sig is McQ!  :-)



Even though they raised the rate for first class mail in the United
States we really shouldn't complain -- it's still only two cents a
day.
--
# ----------------------------------------------------------------------------
#        ROUTERS CONFIGURATION
#    A remote address is passed to each in turn until it is accepted
# ----------------------------------------------------------------------------


begin routers


# Remote addresses are those with a domain that does not match any item
# in the "local_domains" setting above.


# routes to remote hosts over SMTP using a DNS lookup with default options.

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

# routes to remote hosts over SMTP by explicit IP address

literal:
    driver = ipliteral
    domains = ! +local_domains
    transport = remote_smtp


# This router has been added for offloading mail for certain sites to
# better connected hosts and make it their responsibility to deliver to
# the destination, eg AfricaOnline and Net2000ke. It also
# delivers mail for static IP's, 'cos we don't advertise them as
# primary MX's, for both security and speed.

artificial_route:
driver = manualroute
domains = ! +local_domains
route_data = ${lookup{$domain}lsearch{/usr/local/etc/exim/smtproutes}}
transport = remote_smtp
no_more


#spamcheck_director:
# driver = accept
# condition = "${if and { {!def:h_X-Spam-Flag:} {!eq {$received_protocol}{spam-scanned}} {!eq {$received_protocol}{local}} } {1}{0}}"
# retry_use_local_part
# transport = spamcheck
# no_verify

########## S p a m C o n t r o l #####################
# This director bounces mail that matches the from addresses in this list
# and it bounces it as if the recipient doesn't exist in hopes that the
# bounce will cause the recipient to actually be removed from the list.

#bounce_spam_master:
# driver = smartuser
# require_files = /usr/local/etc/exim/bouncelist
# senders = /usr/local/etc/exim/bouncelist
## new_address = :fail: "unknown local-part \"$local_part\" in domain \"$domain\""
# new_address = :fail: "\"$local_part\" in domain \"$domain\" thinks you are a spammer"

# This director bounces mail that matches the from addresses in this list
# and it bounces it as if the recipient doesn't exist in hopes that the
# bounce will cause the recipient to actually be removed from the list.


bounce_spam_personal:
driver = redirect
allow_defer
allow_fail
data = :fail: "\"$local_part\" in domain \"$domain\" thinks you are a spammer"
require_files = /home/$local_part/.bouncelist
retry_use_local_part
senders = /home/$local_part/.bouncelist



# This director handles our "normal" virtual domains

virtual_domains:
driver = redirect
allow_defer
allow_fail
data = ${lookup{$local_part@$domain}lsearch*@{/usr/local/etc/exim/virtual}}
retry_use_local_part
# expand


# Handle forwarders and aliases (same database table)

virtual_aliases:
driver = redirect
allow_defer
allow_fail
data = ${lookup mysql{select remote_name from forwarder left join domain_alias on domain_alias.domain_name = forwarder.domain_name where local_part = '$local_part' and (forwarder.domain_name = '$domain' or alias = '$domain')}}
forbid_file
forbid_pipe
retry_use_local_part


# This router handles Domain Plus

domainplus_user:
driver = accept
domains = ${lookup mysql{select domain_name from domain where domain_name = '$domain'}}
local_parts = ${lookup mysql{select local_part from popbox where domain_name = '$domain' and local_part = '$local_part'}}
transport = domainplus_delivery


# deliver any undelivered virtual email according to the _default_ forwarder

virtual_defaultuser:
driver = redirect
allow_defer
allow_fail
data = ${lookup mysql{select remote_name from forwarder left join domain_alias on domain_alias.domain_name = forwarder.domain_name where local_part = '_default_' and (forwarder.domain_name = '$domain' or domain_alias.alias = '$domain')}}
forbid_file = true
forbid_pipe = true
retry_use_local_part


## This director will handle our system aliases /etc/mail/aliases

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

# The three transports specified at the end are those that are used when
# forwarding generates a direct delivery to a file, or to a pipe, or sets
# up an auto-reply, respectively.

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


# This director is a test for Maildir delivery - it has to come before the mbox one

maildiruser:
driver = accept
check_local_user
local_parts = lsearch;/usr/local/etc/exim/maildir-users
transport = maildir_delivery



# This director matches local user mailboxes.

localuser:
driver = accept
check_local_user
transport = local_delivery


# If mail is sent out as concern@???, this director handles that

concern_user:
driver = accept
local_parts = concern
retry_use_local_part
transport = concern_bounce


# This is the e-fax director (dormant for now)

faxdirector:
driver = accept
condition = ${lookup{$sender_address}lsearch{/etc/fax/faxusers}{yes}{no}}
local_part_prefix = fax-
retry_use_local_part
transport = efaxtransport

efax_rejected:
driver = accept
local_part_prefix = fax-
retry_use_local_part
transport = efax_rejected_user
unseen
no_verify





--