Frank Ellermann wrote:
But now that you've done, please look into lines
3399 and 3400 of deliver.c:
| if (i == EX_TEMPFAIL)
| to->q_state = QS_RETRY;
> This happens for i != EX_OK after (in line 3372):
Nope, thats not it. Thats for sending the RCTP commands.
We are looking for something along the lines
if (rcode == EX_UNAVAILABLE)
to->q_state = QS_QUEUEUP
after the smtpdata() is done in usersmtp.c but called in deliver.c
which does the markfailure() and sets the initial q_state value.
Start with the smtpdata() which return rcode based on the server response:
250 EX_OK
4yz EX_TEMPFAIL
5yz EX_UNAVAILABLE
From there we want to see how it binds/maps this to the RCPT codes
after the date state is reached.
We now know its there.
In lieu of some update, patch or maybe operator option, phil confirmed
the behavior in SendMail() via an test transaction of these mixed
pattern of reply codes.
--
Sincerely
Hector Santos, CTO
http://www.santronics.com
http://santronics.blogspot.com