reeder@ut-emx.UUCP (William P. Reeder) (03/02/89)
While I am digging into sendmail some more, I was wondering if anyone had already chased down this problem: If a mailer returns rcode=EX_TEMPFAIL, sendmail (re)queues the message for a later trial. I believe this is done in queueup(), which is called from dropenvelope(). In this case, queueup() only writes "R" lines for addresses which have the QQUEUEUP flag set. The problem I have seen is that sometimes there will be an address record with QQUEUEUP set, but the q_paddr field is NULL. queueup() doesn't check to see if this field is NULL and does an fprintf(tfp, "R%s\n", q->q_paddr). I have been told that location 0 in a VAX is always zero, which makes it look like a null string. Having a line in the qf file with only "R" on it is no problem. What is a problem is that I don't have a VAX, and location zero in my machine is 022 followed by 000. I get anywhere from 1 to 3 errors a day claiming that ^R is an unknown user. In every case, I have found that sendmail experienced a temporary failure of some sort (usually an open timed out sending SMTP mail to another host) and rewrote the queue file for a later attempt. When the daemon comes around during the next queue run, it reads the queue file, finds a recipient ^R, and complains. Has anyone else seen this problem? How do you deal with it? Thanks for your time, William Reeder reeder@emx.utexas.edu, postmaster@emx.utexas.edu -- DISCLAIMER: I speak only for myself, and usually only to myself.