in reply to Re: Ways to test sendmail
in thread Ways to test sendmail

Here is the Sub SendMail:

sub SendMail { if (-e $FORM{'template'}) { } else { &Error('Template File Not Found - Error at sendmail subscri +pt'); } open (FILE, $FORM{'template'}); @File = <FILE>; close (FILE); open (MAIL, "|$mailprog -t") || &Error('Unable to Open Sendmail'); print MAIL "To: $FORM{'mailto'}\n"; print MAIL "From: $FORM{'req-EMail'} ($FORM{'req-FName'} $FORM{'re +q-LName'})\n"; print MAIL "Subject: $FORM{'subject'}\n"; print MAIL "Bcc: \n\n"; print MAIL "This information request form is from the Rainforest & + Reef Resorts of Belize website.\n"; print MAIL "*************************************************\n"; print MAIL "This form was submitted at $time by $FORM{'req-FName'} + $FORM{'req-LName'} ($FORM{'req-EMail'}).\n"; print MAIL "For your records, this is Form Request Number \= $Orde +r from this website.\n"; print MAIL "*************************************************\n\n" +; foreach $File (@File) { $File =~ s/\n//; foreach $Field (@InputFields) { $ReplaceVar = $FORM{$Field}; $SearchVar = '\[' . $Field . '\]'; $File =~ s/$SearchVar/$ReplaceVar/g; } print MAIL "$File\n"; } close (MAIL); }

After performing this subroutine, it then:

sub Redirect { if ($FORM{'success'}) { print "Location: $FORM{'success'}\n\n"; } }
The "success" page is returned, but the mail does not go out and the email is added to the "dead.letter" file.

Any ideas?

Replies are listed 'Best First'.
Re: Re: Re: Ways to test sendmail
by a (Friar) on Jan 07, 2001 at 10:21 UTC
    Hmmm, well Some hints (no big help though):
    sub SendMail { # add debugging my $debug = 6; if (-e $FORM{'template'}) { } else { &Error('Template File Not Found - Error at sendmail subsc +ript'); }
    Normally (note adding the missing file name to error msg):
    if ( ! -e $FORM{'template'}) { &Error('Template File $FORM{template} Not Found - Error at sendma +il subscript'); } open (FILE, $FORM{'template'});<br>
    always:
    open (FILE, $FORM{'template'}) or die "can't open FILE $FORM{tem +plate}: $!";<br> @File = <FILE>; close (FILE); open (MAIL, "|$mailprog -t") || &Error('Unable to Open Sendmail' +);
    Try:
    open (MAIL, "|$mailprog -t") || &Error("Unable to Open $mailprog +: $!"); print "<p>trying: $mailprog -t<br> To: $FORM{mailto}<br> From: $FORM{req-EMAIL} ($FORM{req-FName} $FORM{req-LName})<br> Subject: $FORM{subject}<br>\n" if $debug > 5; print MAIL "To: $FORM{'mailto'}\n"; print MAIL "From: $FORM{'req-EMail'} ($FORM{'req-FName'} $FORM{' +re +q-LName'})\n"; print MAIL "Subject: $FORM{'subject'}\n"; print MAIL "Bcc: \n\n"; print MAIL "This information request form is from the Rainforest + & + Reef Resorts of Belize website.\n"; print MAIL "*************************************************\n" +; + print MAIL "This form was submitted at $time by $FORM{'req-FName +'} + $FORM{'req-LName'} ($FORM{'req-EMail'}).\n"; print MAIL "For your records, this is Form Request Number \= $Or +de +r from this website.\n"; print MAIL "*************************************************\n\ +n" +; foreach $File (@File) { $File =~ s/\n//; foreach $Field (@InputFields) { $ReplaceVar = $FORM{$Field}; $SearchVar = '\[' . $Field . '\]'; $File =~ s/$SearchVar/$ReplaceVar/g;
    This is odd, does each file (file name) possibly have every/any input field w/i it? Anyway, this is/may be 'cooler'
    $File =~ s/\[$Field]/$FORM{$Field}/g; # do you need an 'e' too? } print MAIL "$File\n"; } close (MAIL); }
    Only thing I can see is that, as you don't (here) verify the sender's address or the To: address, it may have junk in there that sendmail doesn't like. Do you need pointy brackets around the actual To|From address parts?

    a