bug-anubis
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [bug-anubis] Question about esmtp-auth-id manipulation


From: Sergey Poznyakoff
Subject: Re: [bug-anubis] Question about esmtp-auth-id manipulation
Date: Wed, 12 Jan 2011 16:29:56 +0200

Gabriel Araujo <address@hidden> ha escrit:

>    Let me say I have been using Anubis for a while and its an excellent
>    piece of software - congrats!

Thanks.  Wojciech and I are very pleased to hear that :)

>    To be able to use  esmtp-* keywords into rule section would be great -
>    not sure how hard it is to implement.

Technically speaking, Anubis sends each SMTP command to the remote server
immediately after receiving it from the client, so if esmtp-auth
is requested in your config file, then authorization takes place immediately
after receiving the EHLO reply from the remote server.  If this decision
should depend on the value of a particular message header (this is
basically what you need), then Anubis would have to suspend all
SMTP dialogue with the remote server until at least the requested header
(or end of header marker) has been received from the client as a part of DATA
block, and then "replay" it back.  This constitutes a rather considerable
rewrite of the program's logic.

The things would become easier if the decision should depend not on a message
header, but on the value of a SMTP command (e.g., that of MAIL FROM).  This
would require relatively small changes and would permit to achieve the
same effect (provided the client is able to alter the value of
that command, of course).

In other words, this change will allow you to write such a rule:

BEGIN SMTP
if command ["mail from:"] "<address@hidden>.*"
  esmtp-auth-id "smtp-user1"
  esmtp-password "pass1"
else if  command ["mail from:"] "<address@hidden>.*"
   esmtp-auth-id "smtp-user2"
   esmtp-password "pass2"
 fi
fi
END

I think I'll start from implementing this approach as a proof of concept,
and then switch to the full-fledged implementation.

What do you think?

Regards,
Sergey





reply via email to

[Prev in Thread] Current Thread [Next in Thread]