[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Way OT] perl, CGI, and sendmail



On Mon, Apr 11, 2005 at 02:31:26AM +0200, Almut Behrens wrote:
> On Sun, Apr 10, 2005 at 05:27:34PM -0500, David wrote:
> > On Sun, Apr 10, 2005 at 11:25:48PM +0200, Almut Behrens wrote:
> > > When a CGI script doesn't produce any output, it's
> > > considered an "internal error" by the server.
> > 
> > But I was getting output.  In the sendmail example I included, I
> > received a perfect mail.  As I said in the OP, no errors showed up in
> > the exim logs, but I'd get an "Internal Error" report in the web browser
> 
> With output I meant _output sent to the browser_ -- i.e. printed to
> stdout.  In your script, you're just printing a message to SENDMAIL.

Yes, I finally found this out, as you and Andrew Perrin explained it.
About 3 hours ago, I sent a reply, inadverently sent to Steve Patterson
rather than the list - dunno how I did that - explaining that I had
removed a line  "print header;" from the code.  The pattern I was using
was a dual-purpose thing that would either send an email or web page or
both..  I assumed that this line would only be needed for the HTML, not
understanding that _some_ HTML output was required.  When I edited the
script to send HTML, I added that line back in - thus no error - but
removed it again when I converted back to sending mail.

> Sending this mail is considered just a "side effect" CGI-wise.  You
> still have to generate some HTML content to be sent to the browser.
> IOW, after your "print SENDMAIL <<"end_html"; ..." statement, add some
> code to send HTML content to stdout.  Or, use HTTP status code 204. 
> To start with, however, it's probably easier to just generate any page
> to be shown in response to submitting the form... :)

Yes.  I know that now..  I guess if I'd read the documentation I'd have
known it all along :(

Thanks to all who replied.



Reply to: