[exim] Random callout and temporary errors

トップ ページ
このメッセージを削除
このメッセージに返信
著者: Peter Gervai
日付:  
To: exim-users
題目: [exim] Random callout and temporary errors
Hello,

I've tried to look this up, but haven't found what I'm looking for.

Foreword: please religious zealots, avoid replying about not using
callouts or random checks. I'm interested in solving the problem, not
walking around it. Thank you very very much.


Callout with random check. Other party behaves pretty weird. I usually
do not have _any_ problem whatsoever with greylists and other antispam
tricks.

SMTP transscript:

27659 Connecting to mailin4.rmx.de [94.199.90.80]:25 from 79.1.1.1 ...
connected
27659 SMTP<< 220 mailin4.rmx.de ESMTP RMX-Mail
27659 SMTP>> HELO mail.example.hu
27659 SMTP<< 250 mailin17.retarus.de Hello mail.example.hu [79.1.1.1],
pleased to meet you
27659 SMTP>> MAIL FROM:<>
27659 SMTP<< 250 2.1.0 <>... Sender ok
27659 SMTP>> RCPT TO:<mail.example.hu-1257434647-testing@???>
27659 SMTP<< 451 4.3.2 Please try again later

# here we got greylisting delay, that's okay so far

27659 SMTP>> RSET
27659 SMTP<< 250 2.0.0 Reset state

# here we suppose to have the state reset. well...

27659 SMTP>> MAIL FROM:<>
27659 SMTP<< 451 4.3.2 Please try again later

# ...not really. They decided to delay any commands from now on till
the end of the session.

27659 SMTP>> QUIT

# okay, we leave. and try again (since the incoming session is still
waiting for reply):

27659 Connecting to mailin4.rmx.de [62.245.148.19]:25 from 79.121.0.6
... connected
27659 waiting for data on socket
27659 SMTP>> QUIT
27659 send failed: Broken pipe

# ehm, they are fed up for a while (one minute I guess).

Then we try the other MXes with the same result. At the end exim gets bored
and send out "4xx cannot verify sender" to the caller. The problem is that
this going to happen 90% of the time, since - as far as I observe right - exim
do not cache "do not callout random" after temporary error.

We're stuck here: random callout messes up the session, it doesn't get cached,
verify is bound to fail. (Weird is that sometimes it gets through, so maybe
exim recognises LOTS of failed attempts?)

I didn't find any option making random callout temporary errors fatal (and
cached so). Is there any?

By the way, the same would be very handy in a pretty braindead case, where the
"server" (windows joke) actually _drops_ the session in the middle when gets
invalid recipient. Exim acknowledges that the session was broken, so nothing
gets cached, and does it again and again ad nauseam.


And I guess caching random callouts could be [optionally] a bit more aggressive
(if it isn't already?): do not make too many callouts to one same host,
whatever the result was. No need to make admins more angry. :-)

Thanks for your input,
Peter