--- Begin Message ---
Package: exim
Version: 3.32-2 & 3.31-1
Severity: critical
Arch: m68k
Kernel: 2.2.19 & 2.4.9
Libc6: 2.2.3-9 & 2.2.4-1
After installing either of the above versions of exim all mail fails to
get delivered. Running the queue by hand exhibits a signal 11 error.
I have tried various kernel and libc6 versions with no effect on the
outcome. I have now downgraded exim to version 3.12-10 which works fine
with all libc6 and kernel combinations.
Below is an strace and ltrace of the queue run and my exim.conf.
sparks:/tmp# mailq
1m 343 15fUad-000057-00 <[EMAIL PROTECTED]>
[EMAIL PROTECTED]
sparks:/tmp# runq
2001-09-08 00:01:07 queue run: process 348 crashed with signal 11 while
delivering 15fUad-000057-00
sparks:/tmp# strace runq
execve("/usr/sbin/runq", ["runq"], [/* 28 vars */]) = 0
uname({sys="Linux", node="sparks", ...}) = 0
brk(0) = 0x800638d0
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=020151000000, st_size=86298777882624, ...}) = 0
old_mmap(NULL, 20093, PROT_READ, MAP_PRIVATE, 3, 0) = 0xc0014000
close(3) = 0
open("/usr/lib/libident.so.0", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0\16"..., 1024) =
1024
fstat64(3, {st_mode=020151000000, st_size=36833639534592, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc0011000
old_mmap(NULL, 15156, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc0019000
mprotect(0xc001b000, 6964, PROT_NONE) = 0
old_mmap(0xc001b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0) =
0xc001b000
close(3) = 0
open("/usr/lib/libpcre.so.3", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0\r\240"..., 1024) =
1024
fstat64(3, {st_mode=020151000000, st_size=128385162416128, ...}) = 0
old_mmap(NULL, 36352, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc001d000
mprotect(0xc0024000, 7680, PROT_NONE) = 0
old_mmap(0xc0025000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x6000) = 0xc0025000
close(3) = 0
open("/lib/libnsl.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0R\10"..., 1024) =
1024
fstat64(3, {st_mode=020151000000, st_size=281543696191488, ...}) = 0
old_mmap(NULL, 80788, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc0026000
mprotect(0xc0035000, 19348, PROT_NONE) = 0
old_mmap(0xc0036000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0xe000) = 0xc0036000
old_mmap(0xc0038000, 7060, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xc0038000
close(3) = 0
open("/lib/libcrypt.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0\23"..., 1024) =
1024
fstat64(3, {st_mode=020151000000, st_size=84834194034688, ...}) = 0
old_mmap(NULL, 186576, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc003a000
mprotect(0xc003f000, 166096, PROT_NONE) = 0
old_mmap(0xc0040000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x4000) = 0xc0040000
old_mmap(0xc0041000, 157904, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xc0041000
close(3) = 0
open("/lib/libpam.so.0", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0\36"..., 1024) =
1024
fstat64(3, {st_mode=020151000000, st_size=118266219466752, ...}) = 0
old_mmap(NULL, 34636, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc0068000
mprotect(0xc006f000, 5964, PROT_NONE) = 0
old_mmap(0xc0070000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x6000) = 0xc0070000
close(3) = 0
open("/lib/libdb2.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0|\344"..., 1024) =
1024
fstat64(3, {st_mode=020151000000, st_size=1036839464996864, ...}) = 0
old_mmap(NULL, 248608, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc0071000
mprotect(0xc00ab000, 11040, PROT_NONE) = 0
old_mmap(0xc00ab000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x38000) = 0xc00ab000
close(3) = 0
open("/lib/libresolv.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0006"..., 1024) =
1024
fstat64(3, {st_mode=020151000000, st_size=214301688205312, ...}) = 0
old_mmap(NULL, 66616, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc00ae000
mprotect(0xc00ba000, 17464, PROT_NONE) = 0
old_mmap(0xc00ba000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0xa000) = 0xc00ba000
old_mmap(0xc00bc000, 9272, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xc00bc000
close(3) = 0
open("/usr/lib/libldap.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0\221"..., 1024) =
1024
fstat64(3, {st_mode=020151000000, st_size=625158259740672, ...}) = 0
old_mmap(NULL, 152656, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc00bf000
mprotect(0xc00e1000, 13392, PROT_NONE) = 0
old_mmap(0xc00e1000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x20000) = 0xc00e1000
close(3) = 0
open("/usr/lib/liblber.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0(\210"..., 1024) =
1024
fstat64(3, {st_mode=020151000000, st_size=159412006162432, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc00e5000
old_mmap(NULL, 44216, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc00e6000
mprotect(0xc00ef000, 7352, PROT_NONE) = 0
old_mmap(0xc00f0000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x8000) = 0xc00f0000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\2^\254"..., 1024) =
1024
fstat64(3, {st_mode=020173200000, st_size=4140211034394624, ...}) = 0
old_mmap(NULL, 982684, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc00f1000
mprotect(0xc01d5000, 48796, PROT_NONE) = 0
old_mmap(0xc01d5000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0xe2000) = 0xc01d5000
old_mmap(0xc01de000, 11932, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xc01de000
close(3) = 0
open("/lib/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0\35"..., 1024) =
1024
fstat64(3, {st_mode=020151000000, st_size=41970420420608, ...}) = 0
old_mmap(NULL, 16744, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc01e1000
mprotect(0xc01e3000, 8552, PROT_NONE) = 0
old_mmap(0xc01e3000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0)
= 0xc01e3000
close(3) = 0
open("/usr/lib/libsasl.so.7", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0*X\0"..., 1024) =
1024
fstat64(3, {st_mode=020151000000, st_size=162796440391680, ...}) = 0
old_mmap(NULL, 45040, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0xc01e6000
mprotect(0xc01ef000, 8176, PROT_NONE) = 0
old_mmap(0xc01f0000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x8000) = 0xc01f0000
close(3) = 0
munmap(0xc0014000, 20093) = 0
brk(0) = 0x800638d0
brk(0x800658e8) = 0x800658e8
brk(0x80066000) = 0x80066000
fstat64(2, {st_mode=04144000000, st_size=1024, ...}) = 0
brk(0x80068000) = 0x80068000
getpid() = 351
rt_sigaction(SIGUSR1, {0x80011ca0, [], SA_RESTART}, NULL, 8) = 0
rt_sigaction(SIGHUP, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
umask(0) = 022
geteuid32() = 0
getuid32() = 0
getgid32() = 0
setresuid32(0xffffffff, 0, 0xffffffff) = 0
setregid32(0xffffffff, 0) = 0
getgroups32(0x20, 0xeffff970) = 1
setgroups32(0, 0) = 0
getegid32() = 0
geteuid32() = 0
setgid32(0) = 0
setuid32(0) = 0
open("/etc/exim/exim.conf", O_RDONLY) = 3
fstat64(3, {st_mode=020151000000, st_size=63050119909376, ...}) = 0
fstat64(3, {st_mode=020151000000, st_size=63050119909376, ...}) = 0
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc0014000
read(3, "# This is the main exim configur"..., 4096) = 4096
brk(0x8006b000) = 0x8006b000
socket(PF_UNIX, SOCK_STREAM, 0) = 4
connect(4, {sin_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT
(No such file or directory)
close(4) = 0
open("/etc/nsswitch.conf", O_RDONLY) = 4
fstat64(4, {st_mode=020151000000, st_size=1997159796736, ...}) = 0
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc0016000
read(4, "# /etc/nsswitch.conf\n#\n# Example"..., 4096) = 465
read(4, "", 4096) = 0
close(4) = 0
munmap(0xc0016000, 8192) = 0
open("/etc/ld.so.cache", O_RDONLY) = 4
fstat64(4, {st_mode=020151000000, st_size=86298777882624, ...}) = 0
old_mmap(NULL, 20093, PROT_READ, MAP_PRIVATE, 4, 0) = 0xc01f1000
close(4) = 0
open("/lib/libnss_compat.so.2", O_RDONLY) = 4
read(4, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0! \0"..., 1024) =
1024
fstat64(4, {st_mode=020151000000, st_size=157195803037696, ...}) = 0
old_mmap(NULL, 43680, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xc01f6000
mprotect(0xc01ff000, 6816, PROT_NONE) = 0
old_mmap(0xc0200000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4,
0x8000) = 0xc0200000
close(4) = 0
munmap(0xc01f1000, 20093) = 0
uname({sys="Linux", node="sparks", ...}) = 0
open("/etc/passwd", O_RDONLY) = 4
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
fstat64(4, {st_mode=020151000000, st_size=5746666246144, ...}) = 0
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc0016000
_llseek(4, 0, [0], SEEK_CUR) = 0
read(4, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 1338
close(4) = 0
munmap(0xc0016000, 8192) = 0
read(3, "dress is blacklisted in the RBL "..., 4096) = 4096
open("/etc/passwd", O_RDONLY) = 4
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
fstat64(4, {st_mode=020151000000, st_size=5746666246144, ...}) = 0
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc0016000
_llseek(4, 0, [0], SEEK_CUR) = 0
read(4, "root:x:0:0:root:/root:/bin/bash\n"..., 4096) = 1338
close(4) = 0
munmap(0xc0016000, 8192) = 0
uname({sys="Linux", node="sparks", ...}) = 0
gettimeofday({999903680, 509173}, NULL) = 0
getpid() = 351
open("/etc/resolv.conf", O_RDONLY) = 4
fstat64(4, {st_mode=020151000000, st_size=167503728640, ...}) = 0
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc0016000
read(4, "search localnet\nnameserver 192.1"..., 4096) = 39
read(4, "", 4096) = 0
close(4) = 0
munmap(0xc0016000, 8192) = 0
socket(PF_UNIX, SOCK_STREAM, 0) = 4
connect(4, {sin_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT
(No such file or directory)
close(4) = 0
open("/etc/ld.so.cache", O_RDONLY) = 4
fstat64(4, {st_mode=020151000000, st_size=86298777882624, ...}) = 0
old_mmap(NULL, 20093, PROT_READ, MAP_PRIVATE, 4, 0) = 0xc01f1000
close(4) = 0
open("/lib/libnss_files.so.2", O_RDONLY) = 4
read(4, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0(\214"..., 1024) =
1024
fstat64(4, {st_mode=020151000000, st_size=134587095191552, ...}) = 0
old_mmap(NULL, 38756, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xc0201000
mprotect(0xc0209000, 5988, PROT_NONE) = 0
old_mmap(0xc0209000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4,
0x6000) = 0xc0209000
close(4) = 0
munmap(0xc01f1000, 20093) = 0
open("/etc/host.conf", O_RDONLY) = 4
fstat64(4, {st_mode=020151000000, st_size=111669153792, ...}) = 0
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc0016000
read(4, "order hosts,bind\nmulti on\n", 4096) = 26
read(4, "", 4096) = 0
close(4) = 0
munmap(0xc0016000, 8192) = 0
open("/etc/hosts", O_RDONLY) = 4
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
fstat64(4, {st_mode=020151000000, st_size=90194317312, ...}) = 0
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc0016000
read(4, "127.0.0.1\t\tlocalhost\n", 4096) = 21
read(4, "", 4096) = 0
close(4) = 0
munmap(0xc0016000, 8192) = 0
open("/etc/ld.so.cache", O_RDONLY) = 4
fstat64(4, {st_mode=020151000000, st_size=86298777882624, ...}) = 0
old_mmap(NULL, 20093, PROT_READ, MAP_PRIVATE, 4, 0) = 0xc01f1000
close(4) = 0
open("/lib/libnss_dns.so.2", O_RDONLY) = 4
read(4, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\4\0\0\0\1\0\0\20"..., 1024) =
1024
fstat64(4, {st_mode=020151000000, st_size=48361331757056, ...}) = 0
old_mmap(NULL, 18204, PROT_READ|PROT_EXEC, MAP_PRIVATE, 4, 0) = 0xc020b000
mprotect(0xc020e000, 5916, PROT_NONE) = 0
old_mmap(0xc020f000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 4,
0x2000) = 0xc020f000
close(4) = 0
munmap(0xc01f1000, 20093) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
connect(4, {sin_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("192.168.1.5")}}, 28) = 0
send(4, "\224k\1\0\0\1\0\0\0\0\0\0\6sparks\10localnet\0\0\34\0"..., 33, 0) = 33
gettimeofday({999903680, 745732}, NULL) = 0
poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 5000) = 1
recvfrom(4, "\224k\205\200\0\1\0\0\0\1\0\0\6sparks\10localnet\0\0\34"..., 1024,
0, {sin_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("192.168.1.5")}}, [16]) = 102
close(4) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
connect(4, {sin_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("192.168.1.5")}}, 28) = 0
send(4, "\224l\1\0\0\1\0\0\0\0\0\0\6sparks\0\0\34\0\1", 24, 0) = 24
gettimeofday({999903680, 786354}, NULL) = 0
poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 5000) = 1
recvfrom(4, "\224l\201\203\0\1\0\0\0\1\0\0\6sparks\0\0\34\0\1\0\0\6"..., 1024,
0, {sin_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("192.168.1.5")}}, [16]) = 100
close(4) = 0
socket(PF_UNIX, SOCK_STREAM, 0) = 4
connect(4, {sin_family=AF_UNIX, path="/var/run/.nscd_socket"}, 110) = -1 ENOENT
(No such file or directory)
close(4) = 0
open("/etc/hosts", O_RDONLY) = 4
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
fstat64(4, {st_mode=020151000000, st_size=90194317312, ...}) = 0
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc0016000
read(4, "127.0.0.1\t\tlocalhost\n", 4096) = 21
read(4, "", 4096) = 0
close(4) = 0
munmap(0xc0016000, 8192) = 0
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
connect(4, {sin_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("192.168.1.5")}}, 28) = 0
send(4, "\224m\1\0\0\1\0\0\0\0\0\0\6sparks\10localnet\0\0\1\0"..., 33, 0) = 33
gettimeofday({999903680, 866220}, NULL) = 0
poll([{fd=4, events=POLLIN, revents=POLLIN}], 1, 5000) = 1
recvfrom(4, "\224m\205\200\0\1\0\1\0\1\0\1\6sparks\10localnet\0\0\1"..., 1024,
0, {sin_family=AF_INET, sin_port=htons(53),
sin_addr=inet_addr("192.168.1.5")}}, [16]) = 84
close(4) = 0
socket(PF_INET6, SOCK_DGRAM, 0) = -1 ENOSYS (Function not implemented)
waitpid(352, NULL, __WCLONE) = 352
socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 4
ioctl(4, 0x8912, 0xefffcfa8) = 0
ioctl(4, 0x8913, 0xefffeef0) = 0
ioctl(4, 0x8913, 0xefffeef0) = 0
close(4) = 0
open("/proc/net/if_inet6", O_RDONLY) = -1 ENOENT (No such file or directory)
chdir("/var/spool/exim") = 0
setregid32(0xffffffff, 0x8) = 0
setresuid32(0xffffffff, 0x8, 0xffffffff) = 0
open("/etc/group", O_RDONLY) = 4
fcntl(4, F_GETFD) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
fstat64(4, {st_mode=020151000000, st_size=2323577311232, ...}) = 0
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc0016000
_llseek(4, 0, [0], SEEK_CUR) = 0
read(4, "root:x:0:\ndaemon:x:1:\nbin:x:2:\ns"..., 4096) = 541
close(4) = 0
munmap(0xc0016000, 8192) = 0
read(3, "ddress_pipe_transport\" option if"..., 4096) = 4096
read(3, "le = .forward\n modemask = 002\n "..., 4096) = 2392
read(3, "", 4096) = 0
read(3, "", 4096) = 0
close(3) = 0
munmap(0xc0014000, 8192) = 0
getpid() = 351
getpid() = 351
time(NULL) = 999903681
open("/etc/localtime", O_RDONLY) = 3
fstat64(3, {st_mode=020151000000, st_size=5682241736704, ...}) = 0
old_mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0xc0014000
read(3, "TZif\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\7\0"..., 4096) =
1323
close(3) = 0
munmap(0xc0014000, 8192) = 0
open("/var/log/exim/mainlog", O_WRONLY|O_APPEND) = 3
fcntl(3, F_GETFD) = 0
fcntl(3, F_SETFD, FD_CLOEXEC) = 0
fstat64(3, {st_mode=020150000000, st_size=19731079761920, ...}) = 0
write(3, "2001-09-08 00:01:21 Start queue "..., 45) = 45
time(NULL) = 999903681
open("/dev/null", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = -1 ENOTDIR (Not a
directory)
open("/var/spool/exim/input", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 4
fstat64(4, {st_mode=010172000000, st_size=211106232537088, ...}) = 0
fcntl(4, F_SETFD, FD_CLOEXEC) = 0
brk(0x8006d000) = 0x8006d000
getdents64(0x4, 0x8006ace0, 0x1000, 0x2) = 168
getdents64(0x4, 0x8006ace0, 0x1000, 0x2) = 0
close(4) = 0
stat64("/var/spool/exim/input//15fUad-000057-00-H", {st_mode=020140000000,
st_size=2499670970368, ...}) = 0
pipe([4, 5]) = 0
getpid() = 351
fork() = 353
close(5) = 0
getpid() = 351
wait4(-1, [WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV], 0, NULL) = 353
--- SIGCHLD (Child exited) ---
time(NULL) = 999903681
stat64("/var/log/exim/mainlog", {st_mode=020150000000, st_size=19924353290240,
...}) = 0
write(3, "2001-09-08 00:01:21 queue run: p"..., 100) = 100
write(2, "2001-09-08 00:01:21 queue run: p"..., 1002001-09-08 00:01:21 queue
run: process 353 crashed with signal 11 while delivering 15fUad-000057-00
) = 100
open("/var/log/exim/paniclog", O_WRONLY|O_APPEND) = 5
fcntl(5, F_GETFD) = 0
fcntl(5, F_SETFD, FD_CLOEXEC) = 0
write(5, "2001-09-08 00:01:21 queue run: p"..., 100) = 100
close(5) = 0
getpid() = 351
read(4, "", 256) = 0
close(4) = 0
getpid() = 351
time(NULL) = 999903681
stat64("/var/log/exim/mainlog", {st_mode=020150000000, st_size=20353850019840,
...}) = 0
write(3, "2001-09-08 00:01:21 End queue ru"..., 43) = 43
_exit(0) = ?
sparks:/tmp# ltrace runq
...
strncmp("* F,2h,15m; G,16h,2h,1"..., "*", 1) = 0
sscanf(0x80065905, 0x8005049a, 0xeffff23c, 0xeffff240, 0) = 1
sscanf(0x80065908, 0x8005049a, 0xeffff23c, 0xeffff240, 0) = 1
sscanf(0x8006590f, 0x8005049a, 0xeffff23c, 0xeffff240, 0) = 1
sscanf(0x80065913, 0x8005049a, 0xeffff23c, 0xeffff240, 0) = 1
sscanf(0x80065916, 0x8005049a, 0xeffff234, 0xeffff238, 1) = 1
sscanf(0x8006591d, 0x8005049a, 0xeffff23c, 0xeffff240, 0) = 1
sscanf(0x80065920, 0x8005049a, 0xeffff23c, 0xeffff240, 0) = 1
fgets("\n", 4095, 0x800669d8) = 0x800658e0
strlen("\n") = 1
fgets("end\n", 4095, 0x800669d8) = 0x800658e0
strlen("end\n") = 4
fgets("\n", 4095, 0x800669d8) = 0x800658e0
strlen("\n") = 1
fgets("\n", 4095, 0x800669d8) = 0x800658e0
strlen("\n") = 1
fgets("################################"..., 4095, 0x800669d8) = 0x800658e0
strlen("################################"...) = 71
fgets("# REWRITE C"..., 4095, 0x800669d8) = 0x800658e0
strlen("# REWRITE C"...) = 71
fgets("################################"..., 4095, 0x800669d8) = 0x800658e0
strlen("################################"...) = 71
fgets("\n", 4095, 0x800669d8) = 0x800658e0
strlen("\n") = 1
fgets("\n", 4095, 0x800669d8) = 0x800658e0
strlen("\n") = 1
fgets("# These rewriters make sure the "..., 4095, 0x800669d8) = 0x800658e0
strlen("# These rewriters make sure the "...) = 72
fgets("# from the real mail-reading hos"..., 4095, 0x800669d8) = 0x800658e0
strlen("# from the real mail-reading hos"...) = 35
fgets("\n", 4095, 0x800669d8) = 0x800658e0
strlen("\n") = 1
fgets("^(?i)(root|postmaster|mailer-dae"..., 4095, 0x800669d8) = 0x800658e0
strlen("^(?i)(root|postmaster|mailer-dae"...) = 71
strncpy(0x80067dc8, "^(?i)(root|postmaster|mailer-dae"..., 52) = 0x80067dc8
strncpy(0x80067e00, "[EMAIL PROTECTED]", 13) = 0x80067e00
fgets("[EMAIL PROTECTED] [EMAIL PROTECTED]"..., 4095, 0x800669d8) = 0x800658e0
strlen("[EMAIL PROTECTED] [EMAIL PROTECTED]"...) = 41
strncpy(0x80067e20, "[EMAIL PROTECTED]", 17) = 0x80067e20
strchr("[EMAIL PROTECTED]", ';') = NULL
strchr("[EMAIL PROTECTED]", '@') = "@sparks.localnet"
strncpy(0x80067e38, "[EMAIL PROTECTED]", 18) = 0x80067e38
fgets("[EMAIL PROTECTED] [EMAIL PROTECTED] Ff"..., 4095, 0x800669d8) =
0x800658e0
strlen("[EMAIL PROTECTED] [EMAIL PROTECTED] Ff"...) = 34
strncpy(0x80067e60, "[EMAIL PROTECTED]", 10) = 0x80067e60
strchr("[EMAIL PROTECTED]", ';') = NULL
strchr("[EMAIL PROTECTED]", '@') = "@in.limbo"
strncpy(0x80067e70, "[EMAIL PROTECTED]", 18) = 0x80067e70
fgets("\n", 4095, 0x800669d8) = 0x800658e0
strlen("\n") = 1
fgets("# This is an example of a useful"..., 4095, 0x800669d8) = 0x800658e0
strlen("# This is an example of a useful"...) = 71
fgets("# address of all local users in "..., 4095, 0x800669d8) = 0x800658e0
strlen("# address of all local users in "...) = 39
fgets("\n", 4095, 0x800669d8) = 0x800658e0
strlen("\n") = 1
fgets("# [EMAIL PROTECTED] $"..., 4095, 0x800669d8) = 0x800658e0
strlen("# [EMAIL PROTECTED] $"...) = 74
fgets("#\t\t\t\t\t\t{$value}fail} bcfrF\n", 4095, 0x800669d8) = 0x800658e0
strlen("#\t\t\t\t\t\t{$value}fail} bcfrF\n") = 27
fgets("\n", 4095, 0x800669d8) = 0x800658e0
strlen("\n") = 1
fgets("# End of Exim configuration file"..., 4095, 0x800669d8) = 0x800658e0
strlen("# End of Exim configuration file"...) = 33
fgets("# End of Exim configuration file"..., 4095, 0x800669d8) = NULL
fgets("# End of Exim configuration file"..., 4095, 0x800669d8) = NULL
fclose(0x800669d8) = 0
strchr("postmaster", '@') = NULL
strchr("-+ #0", 's') = NULL
strchr("hlL", 's') = NULL
strlen("postmaster") = 10
sprintf("postmaster", "%*.*s", 10, 10, "postmaster") = 10
strchr("-+ #0", 's') = NULL
strchr("hlL", 's') = NULL
strlen("deadleg.freeserve.co.uk") = 23
sprintf("deadleg.freeserve.co.uk", "%*.*s", 23, 23, "deadleg.freeserve.co.uk")
= 23
strlen("[EMAIL PROTECTED]"...) = 34
strcpy(0x80067e88, "[EMAIL PROTECTED]"...) = 0x80067e88
getpid() = 356
sprintf(" 356 ", "%5d ", 356) = 6
strlen(" 356 ") = 6
getpid() = 356
sprintf("pid=356", "pid=%d", 356) = 7
strlen("pid=356") = 7
strcpy(0x80067eb0, "pid=356") = 0x80067eb0
strcmp("/var/log/exim/%slog", "syslog") = -68
strlen("/var/log/exim/%slog") = 19
malloc(20) = 0x800669d8
strcpy(0x800669d8, "/var/log/exim/%slog") = 0x800669d8
time(NULL) = 999903749
localtime(0xefffefb8) = 0xc01e06c0
sprintf("2001-09-08 00:02:29", "%04d-%02d-%02d %02d:%02d:%02d", 2001, 9, 8, 0,
2, 29) = 19
sprintf("2001-09-08 00:02:29 ", "%s ", "2001-09-08 00:02:29") = 20
strchr("-+ #0", 's') = NULL
strchr("hlL", 's') = NULL
strlen("pid=356") = 7
sprintf("pid=356", "%*.*s", 7, 7, "pid=356") = 7
sprintf("\n", "\n") = 1
strcmp("main", "process") = -3
strchr("-+ #0", 's') = NULL
strchr("hlL", 's') = NULL
strlen("main") = 4
sprintf("main", "%*.*s", 4, 4, "main") = 4
strcmp("main", "main") = 0
strcpy(0x800631a4, "/var/log/exim/mainlog") = 0x800631a4
open("/var/log/exim/mainlog", 1025, 0640) = 3
fcntl(3, 1, 8171, 0xeffff098, 0x8003153e) = 0
fcntl(3, 2, 1, 3, 1) = 0
__fxstat(3, 3, 0xeffff030) = 0
write(3, "2001-09-08 00:02:29 Start queue "..., 45) = 45
time(NULL) = 999903749
sprintf("/var/spool/exim/input", "%s/input", "/var/spool/exim") = 21
strlen("/var/spool/exim/input") = 21
opendir("/var/spool/exim/input") = 0x8006acb0
readdir(0x8006acb0) = 0x8006ace0
strlen(".") = 1
readdir(0x8006acb0) = 0x8006acf0
strlen("..") = 2
readdir(0x8006acb0) = 0x8006ad00
strlen("15fUad-000057-00-D") = 18
readdir(0x8006acb0) = 0x8006ad20
strlen("15fUad-000057-00-H") = 18
strlen("15fUad-000057-00-H") = 18
strcpy(0x80067ebd, "15fUad-000057-00-H") = 0x80067ebd
readdir(0x8006acb0) = 0x8006ad40
strlen("15fUad-000057-00-J") = 18
readdir(0x8006acb0) = NULL
closedir(0x8006acb0) = 0
sprintf("/var/spool/exim/input//15fUad-00"..., "%s/input/%s/%s",
"/var/spool/exim", "", "15fUad-000057-00-H") = 41
__xstat(3, "/var/spool/exim/input//15fUad-00"..., 0xeffff1f8) = 0
pipe(0xeffff0e4, 0xeffff970, 7, 0x80002d4c, 0x8002205c) = 0
getpid() = 356
sprintf(" 356 ", "%5d ", 356) = 6
strlen(" 356 ") = 6
strchr("-+ #0", 's') = NULL
strchr("hlL", 's') = NULL
strlen("15fUad-000057-00-H") = 18
sprintf("15fUad-000057-00-H", "%*.*s", 18, 18, "15fUad-000057-00-H") = 18
fork() = 358
close(5) = 0
getpid() = 356
sprintf(" 356 ", "%5d ", 356) = 6
strlen(" 356 ") = 6
strchr("-+ #0", 's') = NULL
strchr("hlL", 's') = NULL
strlen("15fUad-000057-00") = 16
sprintf("15fUad-000057-00", "%*.*s", 16, 16, "15fUad-000057-00") = 16
strchr("-+ #0", 'd') = NULL
strchr("hlL", 'd') = NULL
strncpy(0xeffff048, "%d", 2) = 0xeffff048
sprintf("358", "%d", 358) = 3
wait(0xeffff0e0, 0xeffff970, 7, 0x80002d4c, 0x8002205c <unfinished ...>
--- SIGCHLD (Child exited) ---
<... wait resumed> ) = 358
time(NULL) = 999903750
localtime(0xefffefb4) = 0xc01e06c0
sprintf("2001-09-08 00:02:30", "%04d-%02d-%02d %02d:%02d:%02d", 2001, 9, 8, 0,
2, 30) = 19
sprintf("2001-09-08 00:02:30 ", "%s ", "2001-09-08 00:02:30") = 20
strchr("-+ #0", 'd') = NULL
strchr("hlL", 'd') = NULL
strncpy(0xefffefc8, "%d", 2) = 0xefffefc8
sprintf("358", "%d", 358) = 3
strchr("-+ #0", 'd') = NULL
strchr("hlL", 'd') = NULL
strncpy(0xefffefc8, "%d", 2) = 0xefffefc8
sprintf("11", "%d", 11) = 2
strchr("-+ #0", 's') = NULL
strchr("hlL", 's') = NULL
strlen("15fUad-000057-00") = 16
sprintf("15fUad-000057-00", "%*.*s", 16, 16, "15fUad-000057-00") = 16
sprintf("\n", "\n") = 1
__xstat(3, "/var/log/exim/mainlog", 0xeffff02c) = 0
write(3, "2001-09-08 00:02:30 queue run: p"..., 100) = 100
fprintf(0xc01d814c, "%s", "2001-09-08 00:02:30 queue run: p"...2001-09-08
00:02:30 queue run: process 358 crashed with signal 11 while delivering
15fUad-000057-00
) = 100
strcmp("panic", "process") = -17
strchr("-+ #0", 's') = NULL
strchr("hlL", 's') = NULL
strlen("panic") = 5
sprintf("panic", "%*.*s", 5, 5, "panic") = 5
strcmp("panic", "main") = 3
open("/var/log/exim/paniclog", 1025, 0640) = 5
fcntl(5, 1, 100, 0xeffff094, 0xeffff0e0) = 0
fcntl(5, 2, 1, 5, 1) = 0
write(5, "2001-09-08 00:02:30 queue run: p"..., 100) = 100
close(5) = 0
getpid() = 356
sprintf(" 356 ", "%5d ", 356) = 6
strlen(" 356 ") = 6
strchr("-+ #0", 'd') = NULL
strchr("hlL", 'd') = NULL
strncpy(0xeffff050, "%d", 2) = 0xeffff050
sprintf("358", "%d", 358) = 3
read(4, "", 256) = 0
close(4) = 0
getpid() = 356
sprintf(" 356 ", "%5d ", 356) = 6
strlen(" 356 ") = 6
time(NULL) = 999903751
localtime(0xefffefbc) = 0xc01e06c0
sprintf("2001-09-08 00:02:31", "%04d-%02d-%02d %02d:%02d:%02d", 2001, 9, 8, 0,
2, 31) = 19
sprintf("2001-09-08 00:02:31 ", "%s ", "2001-09-08 00:02:31") = 20
strchr("-+ #0", 's') = NULL
strchr("hlL", 's') = NULL
strlen("pid=356") = 7
sprintf("pid=356", "%*.*s", 7, 7, "pid=356") = 7
sprintf("\n", "\n") = 1
__xstat(3, "/var/log/exim/mainlog", 0xeffff034) = 0
write(3, "2001-09-08 00:02:31 End queue ru"..., 43) = 43
exit(0 <unfinished ...>
__deregister_frame_info(0x800618dc, 0, 0xeffff26c, 0x80044b7e, 0xeffff288) =
0x80061d1c
+++ exited (status 0) +++
sparks:/tmp# cat /etc/exim/exim.conf
# This is the main exim configuration file.
# It was originally generated by `eximconfig', part of the exim package
# distributed with Debian, but it may edited by the mail system administrator.
# This file originally generated by eximconfig at Tue Nov 2 21:33:55 GMT 1999
# See exim info section for details of the things that can be configured here.
# Please see the manual for a complete list
# of all the runtime configuration options that can be included in a
# configuration file.
# This file is divided into several parts, all but the last of which are
# terminated by a line containing the word "end". The parts must appear
# in the correct order, and all must be present (even if some of them are
# in fact empty). Blank lines, and lines starting with # are ignored.
######################################################################
# MAIN CONFIGURATION SETTINGS #
######################################################################
# Specify the domain you want to be added to all unqualified addresses
# here. Unqualified addresses are accepted only from local callers by
# default. See the receiver_unqualified_{hosts,nets} options if you want
# to permit unqualified addresses from remote sources. If this option is
# not set, the primary_hostname value is used for qualification.
qualify_domain = deadleg.freeserve.co.uk
# The receiver_unqualified_hosts option lists those hosts from which Exim
# is prepared to accept unqualified receiver addresses. The addresses are made
# fully qualified by the addition of the qualify_recipient value. Typically the
# hosts are local ones, but if you want to imitate the behaviour of mailers that
# accept unqualified addresses from anywhere, specify
#
# receiver_unqualified_hosts = *
receiver_unqualified_hosts = "192.168.1.0/24"
# If you want unqualified recipient addresses to be qualified with a different
# domain to unqualified sender addresses, specify the recipient domain here.
# If this option is not set, the qualify_domain value is used.
# qualify_recipient =
# Specify your local domains as a colon-separated list here. If this option
# is not set (i.e. not mentioned in the configuration file), the
# qualify_recipient value is used as the only local domain. If you do not want
# to do any local deliveries, uncomment the following line, but do not supply
# any data for it. This sets local_domains to an empty string, which is not
# the same as not mentioning it at all. An empty string specifies that there
# are no local domains; not setting it at all causes the default value (the
# setting of qualify_recipient) to be used.
local_domains = localhost:deadleg.freeserve.co.uk:localnet
# Allow mail addressed to our hostname, or to our IP address.
local_domains_include_host = true
local_domains_include_host_literals = true
# Domains we relay for; that is domains that aren't considered local but we
# accept mail for them.
#relay_domains =
# If this is uncommented, we accept and relay mail for all domains we are
# in the DNS as an MX for.
#relay_domains_include_local_mx = true
# No local deliveries will ever be run under the uids of these users (a colon-
# separated list). An attempt to do so gets changed so that it runs under the
# uid of "nobody" instead. This is a paranoic safety catch. Note the default
# setting means you cannot deliver mail addressed to root as if it were a
# normal user. This isn't usually a problem, as most sites have an alias for
# root that redirects such mail to a human administrator.
never_users = root
# The setting below causes Exim to do a reverse DNS lookup on all incoming
# IP calls, in order to get the true host name. If you feel this is too
# expensive, you can specify the networks for which a lookup is done, or
# remove the setting entirely.
host_lookup = *
# Exim contains support for the Realtime Blocking List (RBL) that is being
# maintained as part of the DNS. See http://maps.vix.com/rbl/ for background.
# Uncommenting the following line will make Exim reject mail from any
# host whose IP address is blacklisted in the RBL at maps.vix.com.
#rbl_domains = rbl.maps.vix.com
#rbl_reject_recipients = false
#rbl_warn_header = true
# The setting below allows your host to be used as a mail relay only by
# localhost: it locks out the use of your host as a mail relay by any
# other host. See the section of the manual entitled "Control of relaying"
# for more info.
host_accept_relay = localhost
# If you want Exim to support the "percent hack" for all your local domains,
# uncomment the following line. This is the feature by which mail addressed
# to [EMAIL PROTECTED] (where z is one of your local domains) is locally
rerouted to
# [EMAIL PROTECTED] and sent on. Otherwise x%y is treated as an ordinary local
part
# percent_hack_domains=*
# If this option is set, then any process that is running as one of the
# listed users may pass a message to Exim and specify the sender's
# address using the "-f" command line option, without Exim's adding a
# "Sender" header.
trusted_users = mail
# If this option is true, the SMTP command VRFY is supported on incoming
# SMTP connections; otherwise it is not.
smtp_verify = false
# Some operating systems use the "gecos" field in the system password file
# to hold other information in addition to users' real names. Exim looks up
# this field when it is creating "sender" and "from" headers. If these options
# are set, exim uses "gecos_pattern" to parse the gecos field, and then
# expands "gecos_name" as the user's name. $1 etc refer to sub-fields matched
# by the pattern.
gecos_pattern = ^([^,:]*)
gecos_name = $1
# This sets the maximum number of messages that will be accepted in one
# connection. The default is 10, which is probably enough for most purposes,
# but is too low on dialup SMTP systems, which often have many more mails
# queued for them when they connect.
smtp_accept_queue_per_connection = 100
# Send a mail to the postmaster when a message is frozen. There are many
# reasons this could happen; one is if exim cannot deliver a mail with no
# return address (normally a bounce) another that may be common on dialup
# systems is if a DNS lookup of a smarthost fails. Read the documentation
# for more details: you might like to look at the auto_thaw option
freeze_tell_mailmaster = true
# This string defines the contents of the \`Received' message header that
# is added to each message, except for the timestamp, which is automatically
# added on at the end, preceded by a semicolon. The string is expanded each
# time it is used.
received_header_text = "Received: \
${if def:sender_rcvhost {from ${sender_rcvhost}\n\t}\
{${if def:sender_ident {from ${sender_ident} }}\
${if def:sender_helo_name {(helo=${sender_helo_name})\n\t}}}}\
by ${primary_hostname} \
${if def:received_protocol {with ${received_protocol}}} \
(Exim ${version_number} #${compile_number} (Debian))\n\t\
id ${message_id}\
${if def:received_for {\n\tfor <$received_for>}}"
end
######################################################################
# TRANSPORTS CONFIGURATION #
######################################################################
# ORDER DOES NOT MATTER #
# Only one appropriate transport is called for each delivery. #
######################################################################
# This transport is used for local delivery to user mailboxes. On debian
# systems group mail is used so we can write to the /var/spool/mail
# directory. (The alternative, which most other unixes use, is to deliver
# as the user's own group, into a sticky-bitted directory)
local_delivery:
driver = appendfile
group = mail
mode = 0660
mode_fail_narrower = false
envelope_to_add = true
file = /var/spool/mail/${local_part}
# This transport is used for handling pipe addresses generated by alias
# or .forward files. It has a conventional name, since it is not actually
# mentioned elsewhere in this configuration file. (A different name *can*
# be specified via the "address_pipe_transport" option if you really want
# to.) If the pipe generates any standard output, it is returned to the sender
# of the message as a delivery error. Set return_fail_output instead if you
# want this to happen only when the pipe fails to complete normally.
address_pipe:
driver = pipe
return_output
# This transport is used for handling file addresses generated by alias
# or .forward files. It has a conventional name, since it is not actually
# mentioned elsewhere in this configuration file.
address_file:
driver = appendfile
# This transport is used for handling file addresses generated by alias
# or .forward files if the path ends in "/", which causes it to be treated
# as a directory name rather than a file name. Each message is then delivered
# to a unique file in the directory. If instead you want all such deliveries to
# be in the "maildir" format that is used by some other mail software,
# uncomment the final option below. If this is done, the directory specified
# in the .forward or alias file is the base maildir directory.
#
# Should you want to be able to specify either maildir or non-maildir
# directory-style deliveries, then you must set up yet another transport,
# called address_directory2. This is used if the path ends in "//" so should
# be the one used for maildir, as the double slash suggests another level
# of directory. In the absence of address_directory2, paths ending in //
# are passed to address_directory.
address_directory:
driver = appendfile
no_from_hack
prefix = ""
suffix = ""
# maildir_format
# This transport is used for handling autoreplies generated by the filtering
# option of the forwardfile director. It has a conventional name, since it
# is not actually mentioned elsewhere in this configuration file.
address_reply:
driver = autoreply
# This transport is used for delivering messages over SMTP connections.
remote_smtp:
driver = smtp
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. #
######################################################################
# This allows local delivery to be forced, avoiding alias files and
# forwarding.
real_local:
prefix = real-
driver = localuser
transport = local_delivery
# 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_transport = address_file
pipe_transport = address_pipe
file = /etc/aliases
search_type = lsearch
# user = list
# Uncomment the above line if you are running smartlist
# This director handles forwarding using traditional .forward files.
# It also allows mail filtering when a forward file starts with the
# string "# Exim filter": to disable filtering, uncomment the "filter"
# option. The check_ancestor option means that if the forward file
# generates an address that is an ancestor of the current one, the
# current one gets passed on instead. This covers the case where A is
# aliased to B and B has a .forward file pointing to A.
# For standard debian setup of one group per user, it is acceptable---normal
# even---for .forward to be group writable. If you have everyone in one
# group, you should comment out the "modemask" line. Without it, the exim
# default of 022 will apply, which is probably what you want.
userforward:
driver = forwardfile
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply
no_verify
check_ancestor
file = .forward
modemask = 002
filter
# For a satellite sytem, all mail sent to local users is re-directed to
# their accounts on slug.localnet
smart:
driver = smartuser
new_address = [EMAIL PROTECTED]
end
######################################################################
# ROUTERS CONFIGURATION #
# Specifies how remote addresses are handled #
######################################################################
# ORDER DOES MATTER #
# A remote address is passed to each in turn until it is accepted. #
######################################################################
# Remote addresses are those with a domain that does not match any item
# in the "local_domains" setting above.
# Send all mail to a smarthost
smarthost:
driver = domainlist
transport = remote_smtp
route_list = "* slug.localnet bydns_a"
end
######################################################################
# RETRY CONFIGURATION #
######################################################################
# This single retry rule applies to all domains and all errors. It specifies
# retries every 15 minutes for 2 hours, then increasing retry intervals,
# starting at 2 hours and increasing each time by a factor of 1.5, up to 16
# hours, then retries every 8 hours until 4 days have passed since the first
# failed delivery.
# Domain Error Retries
# ------ ----- -------
* * F,2h,15m; G,16h,2h,1.5; F,4d,8h
end
######################################################################
# REWRITE CONFIGURATION #
######################################################################
# These rewriters make sure the mail messages appear to have originated
# from the real mail-reading host.
^(?i)(root|postmaster|mailer-daemon)@sparks.localnet [EMAIL PROTECTED] Ffr
[EMAIL PROTECTED] [EMAIL PROTECTED] Ffr
[EMAIL PROTECTED] [EMAIL PROTECTED] Ffr
# This is an example of a useful rewriting rule---it looks up the real
# address of all local users in a file
# [EMAIL PROTECTED] ${lookup{$1}lsearch{/etc/email-addresses}\
# {$value}fail} bcfrF
# End of Exim configuration file
Nick
---------------------------------------------------------------
Contact : Nick Holgate <[EMAIL PROTECTED]> ICQ #117649207
Home Page : http://people.debian.org/~holgate
GPG key : http://people.debian.org/~holgate/pubkey.txt
Fingerprint: 9DCA EDEA D5C5 57DA 23F3 1A2B 2273 5645 FD9C 18AF
--- End Message ---