I've implemented a POP-before-send with exim. It's fairly easy, and works great.
Just put this in your exim configure file
sender_net_accept_relay = /usr/local/etc/exim/allowable.relays
And then run this program and make sure that you have it set to start when you boot up.
#!/usr/bin/perl
$FIFO = '/usr/local/etc/exim/allowable.relays';
while (1) {
unless (-p $FIFO) {
unlink $FIFO;
system('mkfifo', $FIFO)
&& die "can't mkfifo $FIFO: $!";
}
# next line blocks until there's a reader
open (FIFO, "> $FIFO") || die "can't write $FIFO: $!";
ip_out();
close FIFO;
sleep 2; # to avoid dup signals
}
sub ip_out {
my %ipList, $line, $ip;
open (MAILLOG, "< /var/log/maillog") || die "can't read /var/log/maillog: $!";
while($line = <MAILLOG>) {
if(($line !~ m/failure/) && ($line =~ m|\d+\.\d+\.\d+\.\d+|)) {
($ip) = ($line =~ m|(\d+\.\d+\.\d+\.\d+)|);
if(!exists($ipList{$ip})) {
$ipList{$ip} = 1;
print FIFO "$ip/32:\n";
}
}
}
close MAILLOG;
}
On Tue, 2 Feb 1999 11:50:41 -0500, you wrote:
>Has anyone implemented a POP-before-send mechanism in exim to work around
>relay restrictions? I've checked the FAQ and as much of egroups.com's slow
>servers as I can stomach, with no success.
>
>I'd hate to reinvent the wheel, but if I do have to come up with something
>on my own, I'll be sure to send the info back to the list.
>
>Tabor
>
>--
>___________________________________________________________________________
>Tabor J. Wells twells@???
>Systems Administration Manager Just another victim of the ambient morality
>Shore.Net -- High quality Internet access and hosting services since 1993
--
Elliot (efinley@???)
"The box said 'Requires Windows 95, NT, or better,' so I installed FreeBSD."
--
*** Exim information can be found at
http://www.exim.org/ ***