On Fri, 10 Nov 2000, The Hermit Hacker wrote:

>       doing further investigation on this, and if I remove the sieve
> script (a simple redirect "remote user";), the error messages goes away
> and the message is delivered to the mailbox ...
>
>       does that make any sense to anyone?  I can't seem to find any
> other error messages anywhere ... but may not be looking where I should
> be?

Yep, that makes perfect sense, considering this error message is from
the open_sendmail function in lmtpd.c:414 (line numberss and code from 
recent cvs, YMMV) 

421     if ((p = fork()) == 0) {
422         /* i'm the child! run sendmail! */
423         close(fds[1]);
424         /* make the pipe be stdin */
425         dup2(fds[0], 0);
426         execv(SENDMAIL, (char **) argv);
427 
428         /* if we're here we suck */
429         printf("451 deliver: didn't exec?!?\r\n");
430         fatal("couldn't exec", EC_OSERR);
431     }

So apparently we suck :-)

Do other sieve actions which generate some kind of mail (i.e. 
forward, vacation, reject) work for you?

First guess is something's wrong with your path to sendmail.. try
setting "sendmail: /path/to/sendmail" in your imapd.conf or, even easier,
make a symlink from the real location of your sendmail binary to 
/usr/lib/sendmail and see if that fixes the problem.

BTW (Ken, you listening? :-) I ran into a problem where Sieve was 
generating empty responses to 'vacation' script triggers, which I tracked
down to some of these routines.  lmtpd was coredumping on sending
a response because the sendmail command line built up in send_response()
is bogus, and the result code from open_sendmail (EX_SOFTWARE, iirc)
wasn't being handled properly.. fixing this exposed another problem
where (2nd hunk in the diff below) for some reason the 'm' struct 
was null'ed out and the In-Reply-To caused a sigsegv. Yuk.  

These diffs are cheesy, but at least my users can send vacations now.
On another run through the code just now I realized that send_forward
and send_rejection have the same problem. Next maint window, I guess.

Hope this helps

-=Eric

810,813c811,813
<     smbuf[2] = "<>";
<     smbuf[3] = "--";
<     smbuf[4] = src->addr;
<     smbuf[5] = NULL;
---
>     smbuf[2] = "[EMAIL PROTECTED]";
>     smbuf[3] = src->addr;
>     smbuf[4] = NULL;
851c851
<     fprintf(sm, "In-Reply-To: %s\r\n", m->id);
---
> /*    fprintf(sm, "In-Reply-To: %s\r\n", m->id); */


Reply via email to