On Fri, Sep 08, 2006 at 11:52:47AM -0700, Bryan Irvine wrote:
> i have a peice of code that doesn't seem to work. It compiles and
> even executes fine but the email never goes anywhere.
>
> maillog doesn't even show anything trying. Apache is not running
> chrooted.
>
> #define SENDMAIL_PATH "/usr/sbin/sendmail -t"
> #define RECIPIENT "[EMAIL PROTECTED]"
> #define SENDER "From: [EMAIL PROTECTED]"
> FILE *mail;
> char sendmail[512];
>
> sprintf(sendmail, "%s %s", SENDMAIL_PATH, RECIPIENT);
>
> mail = popen(sendmail, "w");
>
> fprintf(mail, "From: [EMAIL PROTECTED]");
> fprintf(mail, "Subject: test email.\n");
> fprintf(mail, "\n");
> fprintf(mail, "blah\n");
>
> pclose(mail);
>
>
> also worth noting that i'm a terrible C programmer. It's possible
> that elsewhere I have a bug, but I just want to eliminate whether
> www can even execute sendmail.
If I am correct in assuming that you run this under Apache, you forgot
to take care of the chroot environment. Install the chroot flavour of
mini_sendmail.
Checking the return values from popen() and pclose() would almost
certainly have caught this, BTW.
Finally, could I point you to the fcgi package? It might be very useful
if you're trying to do CGIish stuff from C. Notably, it allows you to be
even faster. ;-)
Joachim