Autor: Eduardo M KALINOWSKI Data: Para: Exim-users Assunto: Re: [exim] No bounce for spam.
Ruediger Hahn wrote: > Hello,
>
> I think I am having exactly the same problem:
>
> 1. Exim receives an email from a remote server
> 2. Exim delivers the email to Amavisd-new for spam/virus checking
> 3. Amavisd-new sends the email back to Exim, for spam mails with headers
> like X-Spam-Level: X-Spam-Flag: etc.
> 4. Exim finally delivers the email to Cyrus IMAP Daemon, so that a user
> is able to check its content (I do this with "plus-addressing").
>
> 5. Now the problem: If the mailbox does not exist, the email is bounced
> back to Exim.
>
> 6. Exim now again sends the email to Amavisd-new, but it seems, that
> Amavis doesn't recognize it as spam any more because of the "A message
> that you sent could not be delivered to one ore more of its
> recipients...blablabla" content and by the fact it is coming from
> internal network.
> 7. Amavisd-new sends the email back to Exim
> 8. Exim at the end sends a backscatter email
>
> My problem is now, that I don't want to have bounce mails for emails
> which are definitely spam, for example with a spam score above 9.
>
> What doesn't work for me is setting the "sa_dsn_cutoff_level" within
> Amavisd-new. I am not really sure what this setting is good for.
>
> So I thought I could do this within Exim at 8., but I couldn't find a
> solution for this until now. It would be something like
>
> I. find out if it is a bounce mail created from localhost
> II. If so, find out the spam level in the header of the original email
> created at 3.
> III. If spam level is above a certain value, discard the email, else
> deliver it.
>
I think you should try to handle this problem earlier. Back at your
original steps, check (in exim) the recipient. If it does not exist,
don't even send it to Amavisd. After all, why spend CPU and memory
scanning a message that won't be delivered? You don't even need to read
the data. After the RCPT command, reject mails that won't be delivered.
I believe the standard configuration has a check for local users,
rejecting messages at SMTP time for non-existent users. You need to
adapt this check to verify if the user exists in your Cyrus database.
--
Winter is the season in which people try to keep the house as warm as
it was in the summer, when they complained about the heat.