RE: [exim] [Debian issue #244724] exim 4 uses doublereversel…

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Eli
Date:  
À: 'Marc Haber', exim-users
CC: 
Anciens-sujets: Re: [exim] [Debian issue #244724] exim 4 uses double reverselookupforindexing into client password file
Sujet: RE: [exim] [Debian issue #244724] exim 4 uses doublereverselookupforindexing into client password file
Marc wrote:
> On Sat, 26 Feb 2005 23:38:38 -0500, "Eli" <eli-list@???>
> wrote:
> >To fix, quite simple. You specify an entry per *IP* of your mail
> >server in the "passwd.client" file each with the same SMTP auth
> >credentials, and it should work just fine (depending how
> your lookup is
> >done for the SMTP auth user/pass).
>
> That'll work just fine until the ISP decides to put the
> smarthost on a different IP address.


Quite true.

> >If you want a better fix, you need to redo your whole "smarthosts"
> >implementation, as it is not implemented correctly
> apparently - if you
> >want it to work the way the user is trying.
>
> Well, it's the implementation suggested by the Exim
> specification in chapter 20.7, and the Exim FAQ in Q0303.


Kinda-sorta. Exim documentation give examples on how you would use a
smarthost in the manualroute router only. Your problem isn't there, rather
with your attempted use of hosts_try_auth. Exim ties no smarthost examples
to the use of hosts_try_auth, and since hosts_try_auth requires a list of
IPs and not hostnames, is completely incompatible with your implementation.

> What is the correct implementation in your opinion?


Personally I have never needed to do something quite like this, so I don't
know exactly how to do it. I have smarthosts specified which don't need
SMTP authentication, and also I specify them exclusively by IP. However...

Have you checked out how $host and $host_address work in the smtp transport?
Exim documentation states that $host is the hostname of the server it's
going to contact, and $host_address is the IP. If $host stores the hostname
you're looking for then set "hosts_try_auth = $host_address" which will
enable SMTP authentication. You should still have access to $host and
$host_address in the SMTP authenticator section as well so you can lookup
the user/pass from your file.

If $host doesn't have the data you specified (my recommendation is to use
${lookup...} so you can have more than one smarthost, and not need to edit
your config file to use them - to help you with that, think of using the
recpient email addy as the key of the lookup, then retrieving the smarthost
hostname & smtp auth user/pass and then cutting it up using ${extract...} or
something... It would match how route_list wants its data in your router),
then that would indicate to me that Exim is storing the result from the
dnslookup in $host, rather than the initially specified hostname given to it
by route_list.

I'll leave this up to you for testing - I'd be interested to see what Exim
stores in $host come transport time.

Eli.