Re: [Exim] acl_not_smtp

Top Page
Delete this message
Reply to this message
Author: Bruce Richardson
Date:  
To: exim-users
Subject: Re: [Exim] acl_not_smtp
On Mon, May 10, 2004 at 11:59:18PM +0100, Jeremy Harris wrote:
> >No. Delivery is not based on headers. It is based on addresses in the
> >envelope.
>
> Well, I'm confused. The command line looks like:
>
>     exim -oi -t -f "fromname@fromdomain"

>
> and the stdin consists of headers and body.
> I don't see much of an envelope.


The envelope is constructed from those headers when you use -t:
ordinarily, they would be taken from other parameters passed to Exim on
the command line.

>
> OK, wishlist. The current situation seems to leave me with great
> difficulty in validating recipients,


Are you trying to validate local recipients or others?

> so I'm likely to be stuck
> with a long queue-residence followed by generating a bounce.
> I'd prefer to give instant feedback to a mis-typing MUA user.


Are you planning to reject the entire message if one recipient is wrong?
I suppose you could use Exiscan's fakereject feature, so that you could
pass back an error message but still deliver to the other recipients.

> This seems to require verify=recipient, so I'd like an ACL which
> is run per-recipient for non-SMTP sourced mail, with
> local_parts and domains set as needed. I'd be happy if the rcpt_acl
> was coopted for the task.


You should be able to do what you want by with the $recipients variable.
For example, you could use ${perl{}} or ${run{}} to pass $recipients to
a perl function or external script to validate them. If a particular
return value were given, you could then use fakereject to pass details
back. This would be a little complex and don't ask me for details as I
have a stinking cold atm and can't think clearly.

Slightly easier might be to make more use of Exiscan. You could write
your own filter script to parse an e-mail and verify recipients and then
configure Exim+Exiscan to think that it is a cmdline virus scanner.
Verification errors would be passed back in $malware_name.

--
Bruce

I must admit that the existence of Disneyland (which I know is real)
proves that we are not living in Judea in AD 50. -- Philip K. Dick