Resolved the problem!
After the warns in the acl_smtp_rcpt ACL section of the config file there
was the following lines:
accept domains = +local_domains
endpass
message = Unknown local user!
verify = recipient
I think that the verify must do a check of the static.aliases file for the
recipient. If it is found then true is returned and the earlier warn values
will then be used in the acl_smtp_data ACL part.
Thanks
Paul McIlfatrick
> > I know when the lsearch has looked up the reject-list file
> > successfully or not as I have modified Exim's config file to output
> > different log messages depending on what path was taken.
> >
> > The following is part of the acl_smtp_rcpt ACL:
> >
> > warn senders = :
> > set acl_m1 = yes
> >
> > warn message = Invalid sender [$sender_address]
> > senders = postmaster@??? :
> > mailer-daemon@???
> > set acl_m2 = yes
> >
> > warn message = Unknown user!
> > recipients = lsearch;/etc/exim/reject-list
> > set acl_m3 = yes
> > set acl_m4 = $local_part
> >
> > And the following is part of the acl_smtp_data ACL:
> >
> > discard senders = :
> > message = A valid sender header is required for
bounces - discard!
> > !verify = header_sender
> >
> > discard message = Unsolicited bounce detected from null
sender - discard!
> > condition = ${if def:acl_m1{1}{0}}
> > condition = ${if match
> > {$message_body}{$primary_hostname}{0}{1}}
> >
> > discard message = From invalid user [$sender_address] -
discard!
> > condition = ${if def:acl_m2{1}{0}}
> >
> > discard message = For unknown user [$acl_m4] - discard!
> > condition = ${if def:acl_m3{1}{0}}
> >
> >
> > As I said in my original post, lsearch of the reject-list file for
> > aperson@??? only works if aperson is defined in the
> > static.aliases file as aperson: :blackhole:!
>
> Well I went insane and above the call of duty and actually
> stuck all of this stuff into my exim configuration files and
> ran it. It worked. A little strangly for my taste, but it
> worked none the less.
>
> If it only works when there's an entry in the alias file,
> then there is something really screwy going somewhere else in
> your setup and I'd really need to see the whole thing and
> what you are testing it with along with exactly what you are
> expecting. AFAICT, the lsearch is doing what it should be
> doing and the problem is elsewhere.
>
> However.. WHY are you pretending accept mail for these
> recipients when you can just deny them in the acl_smtp_rcpt?
> If they arn't there anymore, stop accepting their mail. It
> wont affect other users getting the mail and will hopefully
> stop people trying to send them mail.
Why I'm pretending to accept mail is the result of my previous posting to
exim users asking for "Help with our postmaster@??? being spoofed as a
sender address" and it stops the postmaster of our company's MTA relay (it
does the virus checking of e-mails as they arrive into the company before
forwarding them to our local MTA) sending me e-mails when I reject them
early! Doing it the way I have it now in the config file has removed a lot
of messages from the postmaster of our company's MTA relay.