ietf-smtp
[Top] [All Lists]

Re: SendMail follows a NO RETRY 5yz logic as defined by specs.

2008-08-12 03:42:53

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