Forbedre script med SMTP
Hej Gutter.Jeg bruger nedenstående script på min hp, det fungerer fint nok så længe den SMTP server jeg bruger til at sende mailen over er oppe at køre, problemet er hvis den er nede, så kommer der en "hvid" webside frem, i modsætning til hvis mailen bliver afsendt korrekt, så kommer der en side op som viser hvad der er blevet sendt.
Er der ikke en der kan lave scriptet om således at hvis den ikke kan oprette forbindelse til SMTP serven, vises der flg. på skærmen, "Der er opstået en fejl, prøve venligst senere" ??
Håber én gider at hjælpe.
Mvh.
Christian_h
Her er scriptet:
#!/usr/bin/perl
print "Content-type: text/html\n\n";
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
$counter=0;
foreach $pair (@pairs) {
($name, $value) = split(/=/, $pair);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$counter=$counter+1;
$Titel{$counter}=$name;
$FORM{$name} = $value;
}
use Net::SMTP;
$smtp = Net::SMTP->new('smtp.mail.dk', Hello => 'Godaw');
$smtp->mail("$FORM{'bemail'}");
$smtp->to("$FORM{'bemail'}");
$smtp->to('kopi@her.dk');
$smtp->data();
$smtp->datasend("To: $FORM{'bemail'}\n");
$smtp->datasend("From: Salg\@her.dk\n");
$smtp->datasend("Subject: Bestilling fra her.dk\n");
$smtp->datasend("Content-type: text/html\n\n");
$smtp->datasend("\n");
print qq½<HTML>
<HEAD>
<TITLE>Udskrift af bestilling hos her.</TITLE>
</HEAD>
<DIV>
<center>
<h2>TAK for din bestilling.</h2>
<h3>Udskriv venligst denne side og gem den til evt. ordre forespørgsel.</h3>
<input type='button' value='Tryk her for at udskrive siden' onclick='window.parent.print();'><br>
<button name="formknap" class="knap" onClick="top.location.href='http://www.her.dk/dansk/index.htm'"; type="button">Tilbage
til start</button>
<br><br></center>½;
printf("<center><b>Du vil snarest muligt modtage en email som du bedes bekræfte FØR din ordre vil blive
gennemført.</b><br></center>\n");
printf("<center><b>Medsend venligst hele mailen, så det er muligt for os at se hvad du har bestilt og hvor det skal sendes
hen.</b><br></center>\n");
printf("<center><b>Hvis du ikke inden for 24 timer har modtaget mailen, bedes du kontakte os via telefon.</b></center>\n");
printf("<br><br>\nHej %s<BR><BR>\n", $FORM{'bname'});
printf("Du har afgivet følgende oplysninger/bestilling:<BR>\n");
printf("Kundennummer: %s<BR>Firma: %s<BR>Navn: %s<BR>\n",$FORM{'bkdnr'}, $FORM{'bfirma'}, $FORM{'bname'});
printf("Gade: %s<BR>Postnummer og by: %s %s<br>Land: %s<BR>Telefon: %s<BR>Email: %s<BR>Kommentar:<p> %s<BR><BR>\n",
$FORM{'bstrasse'}, $FORM{'bpostcode'}, $FORM{'bstadt'}, $FORM{'bland'},$FORM{'btelefon'}, $FORM{'bemail'},
$FORM{'Kommentar'});
$smtp->datasend("<center><img src=http://www.rc-e.dk/dansk/pix/logo.jpg></center>");
$smtp->datasend("Hej ".$FORM{'bname'}."<br><br>");
$smtp->datasend("Du bedes besvare denne mail for at bekræfte din ordre<br><br>");
$smtp->datasend("<b>Medsend venligst hele mailen, så det er muligt for os at se hvad du har bestilt og hvor det skal sendes
hen.<br><br>");
$smtp->datasend("Du har afgivet følgende oplysninger/bestilling:<br><br>");
$smtp->datasend("Kundennummer:".$FORM{'bkdnr'}."<br>Firma: ".$FORM{'bfirma'}."<br>Navn: ".$FORM{'bname'}."<br>");
$smtp->datasend("Gade: ".$FORM{'bstrasse'}."<br>Post nr. & By: ".$FORM{'bpostcode'}." ".$FORM{'bstadt'}."<br>Land:
".$FORM{'bland'}."<br>Telefon: ".$FORM{'btelefon'}."<br>Email: ".$FORM{'bemail'}."<br>Kommentar:<p>".$FORM{'Kommentar'});
#$smtp->datasend("<br><br>Lieferadresse:\nFirma: ".$FORM{'lfirma'}."<br>Name: ".$FORM{'lnachname'}."<br>PLZ/Ort:
".$FORM{'lpostcode'}." ".$FORM{'lstadt'}."<br>Strasse:".$FORM{'lstrasse'});
if ($FORM{'orderm'} eq "Kontoeinzug") {
$mailbody=$mailbody."\n\nKontendaten:\nBank:".$FORM{'ktoinst'}."\nBLZ:".$FORM{'ktoblz'}."\nKtoNummer:".$FORM{'ktonr'}."\nInha
ber:".$FORM{'ktoinh'};
}
if ($FORM{'orderm'} eq "Kreditkarte") {
$mailbody=$mailbody."\n\nKreditkarte:\nInstitut:".$FORM{'kredart'}."\nKartennummer:".$FORM{'krednr'}."\nAblauf
Datum:".$FORM{'kredablauf'};
if ($FORM{'faxja'} eq "on") {
$mailbody=$mailbody."\nKreditkarteninformationen werden per Fax gesendet";
}
}
print("Ønsker at bestille:<BR><BR>\n");
$smtp->datasend("<br><br>Ønsker at bestille:<br><br>");
$an=1;
while ($FORM{'item'.$an}) {
$artikel='item'.$an;
$menge='quantity'.$an;
$einzelpreis='priceeach'.$an;
$vollpreis='totalcost'.$an;
$smtp->datasend($FORM{$artikel}." Antal:".$FORM{$menge}." Stk. Pris:".$FORM{$einzelpreis}.$pr."
Subtotal:".$FORM{$vollpreis}."<br>");
printf("Artikel: %s<BR>Antal: %s<BR>Stk. pris: %s %s<BR>Subtotal: %s<BR><BR>", $FORM{$artikel}, $FORM{$menge},
$FORM{$einzelpreis}, $pr, $FORM{$vollpreis});
$an++;
}
$smtp->datasend("Betaling via ".$FORM{'orderm'}."<br>");
printf("Betaling via %s<BR>",$FORM{'orderm'});
printf("Forsendelse %s<br>",$FORM{'Forsendelse'}."\n");
$smtp->datasend("Forsendelse:".$FORM{'Forsendelse'}."<br>");
printf("Total Pris %s<br>",$FORM{'GoodsTotal'}."\n");
$smtp->datasend("Totalpris:".$FORM{'GoodsTotal'}."<br>");
#printf("Mange tak for din bestilling! Bekræftelse er sendt til %s.", $FORM{'bemail'});
print("</DIV></BODY></HTML>");
$smtp->dataend();
$smtp->quit;
