On 2008-01-18 at 15:26 -0800, Jeroen van Aart wrote:
> Since I have this working correctly now I would like to try to add
> something more. Basically I would like it to work on one machine:
>
> MUA --> host-x MTA (exim4) --> host-x ASSP --> host-x MTA (exim4) -->
> internet
If ASSP lets the mail be re-submitted via the command-line, the normal
way is to use "exim -oMr assp-scanned ..." and check $received_protocol
in the Exim config; you'd have an assp_filter Router with:
condition = ${if !eq{$received_protocol}{assp-scanned}}
on it.
If ASSP has to speak SMTP over a TCP connection, as it seems that it
does, from a very quick glance over:
http://assp.sourceforge.net/fom/cache/93.html
then what I would do is:
* Have Exim listen on ports 25, 465, 587 on all IPs and port 26 on
localhost (and _only_ localhost).
* Have ASSP listen on another port (they suggest 125, I'd pick an even
number in the lower ranges such as 24 which is actually reserved for
"any private mail system").
* Have ASSP send outbound to localhost:26
* Have an Exim router for "assp_filter" which checks $received_port
# Router to come before scanned domains:
assp_filter:
driver = accept
transport = assp_inject
# Big comment explaining magic number goes here
condition = ${if !eq{$received_port}{26}}
no_verify
no_expn
# Transport:
assp_inject:
driver = smtp
hosts = localhost
hosts_override
port = 24
self = send
Untested, obviously, as I don't use the product.
Amend with domains restrictions as appropriate for your setup. If this
is near a hosting environment, where you do want to filter all outbound
mail, then you probably want to add an exception to let through your own
postmaster address, just in case.
-Phil