Re: [EXIM] Mysql and exim

Top Page
Delete this message
Reply to this message
Author: Malcolm Beattie
Date:  
To: exim-users
Subject: Re: [EXIM] Mysql and exim
Paul Mansfield writes:
> On Wed, 28 Oct 1998, iqbal wrote:
> > I've trawled through all th archives (well most of them) and come across
> > a few articles relating to exim and Mysql linking up, has there ever
> > been a solution to this , or will there ever be.
>
> The only thing I can think of is to use the Perlified Exim and then use the
> Perl-to-MySql package, see http://www.cpan.org
>
> My guess is that the perl hooks in Exim might be a very productive route to
> getting all sorts of interesting add-ons to Exim rather than bloat Exim.


The latest patch is now available as
    ftp://ftp.ox.ac.uk/pub/perl/exim-perl-0.5.patch


You'd probably want something like

/etc/exim.pl:

    use DBI;
    $dbh = DBI->connect("dbi:mSQL:dbname=foo");
    sub find_address {
        my ($local, $domain) = @_;
        return $dbh->selectrow_array(
            "select address where local = '$local' and domain = '$domain'"
        );
    }


exim.conf:

    perl_startup = do '/etc/exim.pl';
    ...
    # directors
    mysql_lookup:
      driver = smartuser
      new_address = ${perl{find_address}{$local_part}{$domain}}



Thinking about it, I suspect we want exim to finish off the embedded
perl cleanly so that you can add an END block
    END { $dbh->disconnect }
Although it's not vital in this case, it's probably something which
will be needed at some time or other.


Others have already mentioned their suggestions as to why you might
not want to use a central database directly (and there's certainly
the overhead of a new db connection every time exim is run to
consider) but this, at least, is one way to do it if you so decide.

--Malcolm

--
Malcolm Beattie <mbeattie@???>
Unix Systems Programmer
Oxford University Computing Services

--
*** Exim information can be found at http://www.exim.org/ ***