Hi,
I have recently being vetting EXIM as a direct replacement for sendmail
which we use as a core mail server, serving about 40,000 users. I have a
couple of questions/problems that I was hoping someone might be able to
answer.
1. How scalable is EXIM, i.e are there any other ISP's/Organisations
using EXIM to serve upwards of 40,000 customers ? If so how does EXIM
compare to sendmail in this environment.
2. I have been attempting to get EXIM to use a binary called spop to
perform local deliveries. I have been attempting this using a pipe
transport that calls this binary and naming that transport in the
aliases director. I have pasted both these configs below.
# This is a test POP transport rule
pop_pipe:
driver = pipe
command = "/lib/mh/spop ${lookup {${local_part}} lsearch
{/etc/aliases} {$value}}"
command = "/lib/mh/spop ${local_part}
user = pop
return_output
log_output
(I have included the two command statements that I have tried above,
they were not used together !).
# This is a test POP director rule
system_aliases:
driver = aliasfile
file = /etc/aliases
search_type = lsearch
user = pop
expand = true
transport = pop_pipe
What seems to happen is one of two things, with the first command
statement exim breaks the command line into its constituent parts and
panics because it cant find a key for the lookup. With the second
command a delivery is successful but it simply uses the local_part of
the incoming address and doesn't reference the aliases expanded address
(it does do the lsearch and returns the correct alias !). I have
attached a full trace output from exim using debg level 9 for both
situations. I would be grateful if anyone comment sagely on this matter.
Regards,
Conor.
--
Conor Mc Goveran, conor@???
Sys Op,
Telecom Internet.
Exim version 2.02 debug level 9 uid=0 gid=1
probably ndbm
Actual local interface address is 159.134.237.100
Actual local interface address is 127.0.0.1
verify_setup_hostlist called
verify_setup_netlist called
search_tidyup called
port = 25
listening on all interfaces
LOG: 0 MAIN
exim 2.02 daemon started: pid=22473, no queue runs, listening for SMTP on port 25
set_process_info: 22473 2.02 daemon: no queue runs, port 25
pid written to /var/spool/exim/exim-daemon.pid-bd
daemon running with uid=0 gid=1 euid=0 egid=1
listening on port 25...
Connection request from 159.134.237.8
1 SMTP accept process running
listening on port 25...
sender_fullhost = [159.134.237.8]
sender_rcvhost = [159.134.237.8]
Process 1779 is handling incoming connection from [159.134.237.8]
looking up host name for 159.134.237.8
host lookup yielded spock.tinet.ie
sender_fullhost = spock.tinet.ie [159.134.237.8]
sender_rcvhost = spock.tinet.ie ([159.134.237.8])
set_process_info: 1779 2.02 handling incoming connection from spock.tinet.ie [159.134.237.8]
checking RBL domain rbl.maps.vix.com
RBL lookup: 8.237.134.159.rbl.maps.vix.com
DNS lookup of 8.237.134.159.rbl.maps.vix.com (A) gave HOST_NOT_FOUND
220 scotty ESMTP Exim 2.02 #1 Thu, 20 Aug 1998 10:17:08 +0100
set_process_info: 1779 2.02 handling incoming connection from spock.tinet.ie [159.134.237.8]
ready for new message
smtp_setup_msg entered
SMTP<< EHLO spock.tinet.ie
sender_fullhost = spock.tinet.ie [159.134.237.8]
sender_rcvhost = spock.tinet.ie ([159.134.237.8])
set_process_info: 1779 2.02 handling incoming connection from spock.tinet.ie [159.134.237.8]
250-scotty Hello spock.tinet.ie [159.134.237.8]
250-SIZE
250-PIPELINING
250 HELP
SMTP<< MAIL From:<conor@???> SIZE=426
spool directory /var/spool/exim space = 2662418 blocks; inodes = 4456198; check_space = 0 (0 blocks); inodes = 0; msg_size = 5426 (0 blocks)
250 <conor@???> is syntactically correct
SMTP<< RCPT To:<conor@???>
250 <conor@???> is syntactically correct
SMTP<< DATA
354 Enter message, ending with "." on a line by itself
search_tidyup called
>>Original headers:
Received: from tinet.ie (pc215.eng.tinet.ie [159.134.242.215])
by spock.tinet.ie (8.8.8/8.8.7) with ESMTP id KAA17666
for <conor@???>; Thu, 20 Aug 1998 10:17:08 +0100 (BST)
Sender: conor@???
Message-ID: <35DBE852.FA20A0A1@???>
Date: Thu, 20 Aug 1998 10:11:46 +0100
From: Conor Mc Goveran <conor@???>
Organization: Telecom Internet
X-Mailer: Mozilla 4.04 [en] (X11; I; Linux 2.0.35 i686)
MIME-Version: 1.0
To: conor@???
Subject: TEST
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
rewrite_one_header: type=S:
Sender: conor@???
rewrite_one_header: type=F:
From: Conor Mc Goveran <conor@???>
rewrite_one_header: type=T:
To: conor@???
search_tidyup called
>>Final headers:
P Received: from spock.tinet.ie ([159.134.237.8])
by scotty with esmtp (Exim 2.02 #1)
id 0z9QqC-0000Sh-00
for conor@???; Thu, 20 Aug 1998 10:17:08 +0100
P Received: from tinet.ie (pc215.eng.tinet.ie [159.134.242.215])
by spock.tinet.ie (8.8.8/8.8.7) with ESMTP id KAA17666
for <conor@???>; Thu, 20 Aug 1998 10:17:08 +0100 (BST)
S Sender: conor@???
I Message-ID: <35DBE852.FA20A0A1@???>
Date: Thu, 20 Aug 1998 10:11:46 +0100
F From: Conor Mc Goveran <conor@???>
Organization: Telecom Internet
X-Mailer: Mozilla 4.04 [en] (X11; I; Linux 2.0.35 i686)
MIME-Version: 1.0
T To: conor@???
Subject: TEST
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Data file written for message 0z9QqC-0000Sh-00
Writing spool header file
Size of headers = 730
LOG: 0 MAIN
<= conor@??? H=spock.tinet.ie [159.134.237.8] P=esmtp S=800 id=35DBE852.FA20A0A1@???
250 OK id=0z9QqC-0000Sh-00
Sender: conor@???
Recipients:
conor@???
forked delivery process 22388
set_process_info: 1779 2.02 handling incoming connection from spock.tinet.ie [159.134.237.8]
ready for new message
smtp_setup_msg entered
delivering message 0z9QqC-0000Sh-00
set_process_info: 22388 2.02 delivering 0z9QqC-0000Sh-00
Opened spool file 0z9QqC-0000Sh-00-H
user=root uid=0 gid=1 sender=conor@???
sender_fullhost = spock.tinet.ie [159.134.237.8]
sender_rcvhost = spock.tinet.ie ([159.134.237.8])
sender_local=0 resent=no ident=unset
Non-recipients:
Empty Tree
---- End of tree ----
recipients_count=1
body_linecount=0 message_linecount=18
Delivery address list:
conor@???
locked /var/spool/exim/db/retry.lockfile
opened DB file /var/spool/exim/db/retry: flags=0
unique = conor@???
dbfn_read: key=D:conor@???
conor@???: queued for directing
>>>>>>>>>>>>>>>>>>>>>>>>
directing conor@???
calling system_aliases director
system_aliases director: lsearch key=conor
file="/etc/aliases"
search_open: lsearch "/etc/aliases"
search_find: file="/etc/aliases"
type=lsearch key="conor" partial=-1
internal_search_find: file="/etc/aliases"
type=lsearch key="conor"
file lookup required for conor
in /etc/aliases
lookup yielded: conor
queued for pop_pipe transport uid=4000 gid=500
system_aliases director succeeded for conor
transport: pop_pipe
After directing:
Local addresses:
conor@???
Remote addresses:
Failed addresses:
Addresses to be routed:
Deferred addresses:
search_tidyup called
>>>>>> Local deliveries >>>>>>
locked /var/spool/exim/db/retry.lockfile
opened DB file /var/spool/exim/db/retry: flags=0
dbfn_read: key=T:conor@???
SMTP<< QUIT
221 scotty closing connection
child 1779 ended
0 SMTP accept processes now running
listening on port 25...
delivering conor@??? as conor using pop_pipe:
uid=4000 gid=500 home=NULL current=/
auxiliary group list: <none>
set_process_info: 18512 2.02 delivering 0z9QqC-0000Sh-00 to conor using pop_pipe
pop_pipe transport entered
direct command:
argv[0] = /lib/mh/spop
argv[1] = ${local_part}
direct command after expansion:
argv[0] = /lib/mh/spop
argv[1] = conor
Writing message to pipe
writing data block size=800 timeout=0
set_process_info: 22424 2.02 reading output from /lib/mh/spop ${local_part}
pop_pipe transport yielded 0
pop_pipe transport returned OK
post-process conor@???
conor@??? succeeded: adding to nonrecipients list
LOG: 0 MAIN
=> conor <conor@???> D=system_aliases T=pop_pipe
search_tidyup called
>>>>>> Remote deliveries >>>>>>
set_process_info: 22388 2.02 tidying up after delivering 0z9QqC-0000Sh-00
Processing retry items
Succeeded addresses:
conor@???: no retry items
Failed addresses:
Deferred addresses:
end of retry processing
LOG: 0 MAIN
Completed
end delivery of 0z9QqC-0000Sh-00
Exim version 2.02 debug level 9 uid=0 gid=1
probably ndbm
Actual local interface address is 159.134.237.100
Actual local interface address is 127.0.0.1
verify_setup_hostlist called
verify_setup_netlist called
search_tidyup called
port = 25
listening on all interfaces
LOG: 0 MAIN
exim 2.02 daemon started: pid=23234, no queue runs, listening for SMTP on port 25
set_process_info: 23234 2.02 daemon: no queue runs, port 25
pid written to /var/spool/exim/exim-daemon.pid-bd
daemon running with uid=0 gid=1 euid=0 egid=1
listening on port 25...
Connection request from 159.134.237.8
1 SMTP accept process running
listening on port 25...
sender_fullhost = [159.134.237.8]
sender_rcvhost = [159.134.237.8]
Process 30679 is handling incoming connection from [159.134.237.8]
looking up host name for 159.134.237.8
host lookup yielded spock.tinet.ie
sender_fullhost = spock.tinet.ie [159.134.237.8]
sender_rcvhost = spock.tinet.ie ([159.134.237.8])
set_process_info: 30679 2.02 handling incoming connection from spock.tinet.ie [159.134.237.8]
checking RBL domain rbl.maps.vix.com
RBL lookup: 8.237.134.159.rbl.maps.vix.com
DNS lookup of 8.237.134.159.rbl.maps.vix.com (A) gave HOST_NOT_FOUND
220 scotty ESMTP Exim 2.02 #1 Thu, 20 Aug 1998 10:17:48 +0100
set_process_info: 30679 2.02 handling incoming connection from spock.tinet.ie [159.134.237.8]
ready for new message
smtp_setup_msg entered
SMTP<< EHLO spock.tinet.ie
sender_fullhost = spock.tinet.ie [159.134.237.8]
sender_rcvhost = spock.tinet.ie ([159.134.237.8])
set_process_info: 30679 2.02 handling incoming connection from spock.tinet.ie [159.134.237.8]
250-scotty Hello spock.tinet.ie [159.134.237.8]
250-SIZE
250-PIPELINING
250 HELP
SMTP<< MAIL From:<conor@???> SIZE=426
spool directory /var/spool/exim space = 2662418 blocks; inodes = 4456198; check_space = 0 (0 blocks); inodes = 0; msg_size = 5426 (0 blocks)
250 <conor@???> is syntactically correct
SMTP<< RCPT To:<conor@???>
250 <conor@???> is syntactically correct
SMTP<< DATA
354 Enter message, ending with "." on a line by itself
search_tidyup called
>>Original headers:
Received: from tinet.ie (pc215.eng.tinet.ie [159.134.242.215])
by spock.tinet.ie (8.8.8/8.8.7) with ESMTP id KAA03330
for <conor@???>; Thu, 20 Aug 1998 10:17:48 +0100 (BST)
Sender: conor@???
Message-ID: <35DBE87A.B024556E@???>
Date: Thu, 20 Aug 1998 10:12:26 +0100
From: Conor Mc Goveran <conor@???>
Organization: Telecom Internet
X-Mailer: Mozilla 4.04 [en] (X11; I; Linux 2.0.35 i686)
MIME-Version: 1.0
To: conor@???
Subject: TEST
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
rewrite_one_header: type=S:
Sender: conor@???
rewrite_one_header: type=F:
From: Conor Mc Goveran <conor@???>
rewrite_one_header: type=T:
To: conor@???
search_tidyup called
>>Final headers:
P Received: from spock.tinet.ie ([159.134.237.8])
by scotty with esmtp (Exim 2.02 #1)
id 0z9Qqq-0007yp-00
for conor@???; Thu, 20 Aug 1998 10:17:48 +0100
P Received: from tinet.ie (pc215.eng.tinet.ie [159.134.242.215])
by spock.tinet.ie (8.8.8/8.8.7) with ESMTP id KAA03330
for <conor@???>; Thu, 20 Aug 1998 10:17:48 +0100 (BST)
S Sender: conor@???
I Message-ID: <35DBE87A.B024556E@???>
Date: Thu, 20 Aug 1998 10:12:26 +0100
F From: Conor Mc Goveran <conor@???>
Organization: Telecom Internet
X-Mailer: Mozilla 4.04 [en] (X11; I; Linux 2.0.35 i686)
MIME-Version: 1.0
T To: conor@???
Subject: TEST
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Data file written for message 0z9Qqq-0007yp-00
Writing spool header file
Size of headers = 730
LOG: 0 MAIN
<= conor@??? H=spock.tinet.ie [159.134.237.8] P=esmtp S=800 id=35DBE87A.B024556E@???
250 OK id=0z9Qqq-0007yp-00
Sender: conor@???
Recipients:
conor@???
forked delivery process 30147
set_process_info: 30679 2.02 handling incoming connection from spock.tinet.ie [159.134.237.8]
ready for new message
smtp_setup_msg entered
delivering message 0z9Qqq-0007yp-00
set_process_info: 30147 2.02 delivering 0z9Qqq-0007yp-00
Opened spool file 0z9Qqq-0007yp-00-H
user=root uid=0 gid=1 sender=conor@???
sender_fullhost = spock.tinet.ie [159.134.237.8]
sender_rcvhost = spock.tinet.ie ([159.134.237.8])
sender_local=0 resent=no ident=unset
Non-recipients:
Empty Tree
---- End of tree ----
recipients_count=1
body_linecount=0 message_linecount=18
Delivery address list:
conor@???
locked /var/spool/exim/db/retry.lockfile
SMTP<< QUIT
221 scotty closing connection
opened DB file /var/spool/exim/db/retry: flags=0
unique = conor@???
dbfn_read: key=D:conor@???
conor@???: queued for directing
>>>>>>>>>>>>>>>>>>>>>>>>
directing conor@???
calling system_aliases director
system_aliases director: lsearch key=conor
file="/etc/aliases"
search_open: lsearch "/etc/aliases"
search_find: file="/etc/aliases"
type=lsearch key="conor" partial=-1
internal_search_find: file="/etc/aliases"
type=lsearch key="conor"
file lookup required for conor
in /etc/aliases
lookup yielded: conor
queued for pop_pipe transport uid=4000 gid=500
system_aliases director succeeded for conor
transport: pop_pipe
After directing:
Local addresses:
conor@???
Remote addresses:
Failed addresses:
Addresses to be routed:
Deferred addresses:
search_tidyup called
>>>>>> Local deliveries >>>>>>
locked /var/spool/exim/db/retry.lockfile
opened DB file /var/spool/exim/db/retry: flags=0
dbfn_read: key=T:conor@???
child 30679 ended
0 SMTP accept processes now running
listening on port 25...
delivering conor@??? as conor using pop_pipe:
uid=4000 gid=500 home=NULL current=/
auxiliary group list: <none>
set_process_info: 298 2.02 delivering 0z9Qqq-0007yp-00 to conor using pop_pipe
pop_pipe transport entered
direct command:
argv[0] = /lib/mh/spop
argv[1] = ${lookup
argv[2] = {${local_part}}
argv[3] = lsearch
argv[4] = {/etc/aliases}
argv[5] = {$value}}
pop_pipe transport returned PANIC
post-process conor@???
LOG: 0 MAIN PANIC
== conor@??? T=pop_pipe defer (0): Expansion of "${lookup" from command "/lib/mh/spop ${lookup {${local_part}} lsearch {/etc/aliases} {$value}}" in pop_pipe transport failed: missing lookup type