Hi
I'm struggling to make exim deliver mail to local domains, that for
historical reasons use vmailmgr to manage them. Before everyone
says that exim should be setuid, it is:
lrwxrwxrwx 1 root root 11 Dec 23 14:10 /usr/bin/exim -> exim-4.43-3
-rwsr-xr-x 1 root root 1576220 Dec 23 11:48 /usr/bin/exim-4.43-2
-rwsr-xr-x 1 root root 1576220 Dec 23 14:10 /usr/bin/exim-4.43-3
These are the routers and transports that I've setup:
sub vmail_mailbox
{
use CDB_File;
($file) = @_;
tie(%h, "CDB_File", $file) || die "can't open cdb file";
$a = chr(2);
$line = $h{Exim::expand_string('$local_part')};
$line =~ s/^.*?://;
$line =~ s/:/./;
$line =~ s/\0/:/g;
$line =~ s/$a/:/g;
@bits = split(/:/, $line);
if (length($bits[3]) > 0) {
return($bits[3]);
}
return(undef);
}
vmail_user:
driver = accept
domains = +vmail_domains
user = ${lookup{$domain}lsearch{/etc/exim/vmail_domains}{$value}fail}
condition = ${perl {vmail_mailbox}{/usr/home/${lookup{$domain}lsearch{/etc/exim/vmail_domains}{$value}fail}/passwd.cdb}}
transport = vmail_delivery
vmail_delivery:
driver = appendfile
directory = /usr/home/${lookup{$domain}lsearch{/etc/exim/vmail_domains}{$value}fail}/${perl {vmail_mailbox}{/usr/home/${lookup{$domain}lsearch{/etc/exim/vmail_domains}{$value}fail}/passwd.cdb}}
directory_mode = 0775
create_directory
maildir_format
This correctly verifies that the domain is one that we accept and
that the local_part is in the domain's configuration. It just fails
accepting the mail, either from the command line.
Here's my queue (the message recieved by '/usr/bin/exim -C
/etc/exim/configure.new -oX 26 -bd'):
exim -bp
0m 193 1CpQxN-0006zS-SR <if@???> *** frozen ***
if@???
However, if I force delivery:
exim -C /etc/exim/configure.new -v -M 1CpQxN-0006zS-SR
delivering 1CpQxN-0006zS-SR
LOG: MAIN
Unfrozen by forced delivery
LOG: MAIN
=> if <if@???> R=vmail_user T=vmail_delivery
LOG: MAIN
Completed
Does anyone have any ideas?
Ian
--
Ian Freislich