On Thu, 15 Jul 2004, Eli wrote:
> This would make sense to add it (just like we should also get an ACL for
> after DATA),
You already have an ACL after data.
> however - we'd better make sure Exim can handle a response of
> something other than 354 "properly".
Of course it can. It bounces all the previously accepted recipients for
5xx and defers them for 4xx.
> For example, I have Exim as a filter system ahead of a set of SmartMax
> (www.smartmax.com) servers. They have a user type of "spam trap", and if
> you try to send to one of these users, it will verify the user (250's when
> you specify the recipient), but you get a 500 series error as soon as you
> type DATA and it drops the connection immediately. I'm assuming that it's
> the 500 error that Exim isn't expecting - because when Exim gets it during
> transmission of some email to these types of users, Exim assumes a
> transmission error during delivery and re-queues the message for another
> attempt (eventually dying off my queue after 4 days).
Well, one of my standard tests does not show that, either with or
without PIPELINING. Exim logs the following errors:
** ph10@??? R=r1 T=t1: SMTP error from remote mailer after
pipelined DATA: host 127.0.0.1 [127.0.0.1]: 500 NO
or
** ph10@??? R=r1 T=t1: SMTP error from remote mailer after
DATA: host 127.0.0.1 [127.0.0.1]: 500 NO
and bounces the relevant recipients.
> I remember reading something in the docs though that this would be it's
> expected behaviour in this type of situation, but it's kind of a pain that
> it keeps retrying even though it got a 500 error and shouldn't try again.
Unless something is really weird/broken in the code, Exim does not try
again after any 5xx error for HELO, EHLO, MAIL, RCPT, or DATA. *Other*
MTAs have been observed to do this, and it is indeed a right pain.
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book: http://www.uit.co.uk/exim-book