webForumDet fria alternativet

Nåt fel med utskick av mail.

ASP

9 svar · 267 visningar · startad av Asa

Medlem sedan dec. 20011 860 inlägg
Frågan#1

Har en kod där man hämtar info från databas med ett värde i querystringen och sedan skapas en orderbekräftelse som sedan ska skickas iväg. Men nu äre så att det inte skickas iväg. Har kollar att Email är med och stämmer och testat skriva ut hela mailet men vill inte skicka. Kan nån se i min långa kod nedan vad et kan vara... Hoppas nån vet. HAr testat ett enkelt annat mailscript och det fungerar.

<!--#Include file="inc/settings.asp"-->

<%
Set Inst=Conn.Execute("Select frakt From shop_settings limit 1")
  If Not Inst.EOF Then
    strFrakt   = Inst(0)
  End If
Inst.Close
Set Inst=Nothing

Set RecSet=Conn.Execute("Select ordernr,foretag,orgnr,fnamn,enamn,orderDate,status,paytype,adress,postnr,ort,email,ovrigt,kundbest From shop_orders Where ordernr=" & Request.QueryString("send"))

Set objMail = Server.CreateObject("CDONTS.NewMail")

    Body = "<link rel=""stylesheet"" href=""" & Style & """ type=""text/css"">"
    Body = Body & "<body bgcolor=""#FFFFFF"" text=""#000000"" topmargin=""0"" leftmargin=""0"" marginwidth=""0"" marginheight=""0""><br>"
    Body = Body & "<table border=""0"" width=""75%"" cellspacing=""0"" cellpadding=""2"" align=""center"" style=""border: 1px solid " & Color1& """>"
    Body = Body & "   <tr>"
    Body = Body & "    <td style=""border-bottom: 1px solid " & Color1& """ colspan=""2"" valign=""top""><font size=""5""><b>" & OrderBekrRub & "</b></font></td>"
    Body = Body & "   </tr>"
    Body = Body & "   <tr>"
    Body = Body & "    <td style=""border-bottom: 1px solid " & Color1& """ colspan=""2"" valign=""top""><font size=""4"">OrderNr: <font color=""red"">" & RecSet(0) & "</font></font></td>"
    Body = Body & "   </tr>"
    Body = Body & "   <tr>"
    Body = Body & "     <td width=""50%""><b>Orderdatum:</b><br>" & RecSet(5)& "</td>"
    Body = Body & "     <td width=""50%"">&nbsp;</td>"
    Body = Body & "   </tr>"
    Body = Body & "   <tr>"
    Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """><b>Leveranstyp:</b><br>" & RecSet(7) & "</td>"
    Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """>&nbsp;</td>"
    Body = Body & "   </tr>"
    Body = Body & "   <tr>"
    Body = Body & "     <td width=""50%"" valign=""top""><b>Företag:</b><br>" & RecSet(1) & "</td>"
    Body = Body & "     <td width=""50%"" valign=""top""><b>OrgNr:</b><br>" & RecSet(2) & "</td>"
    Body = Body & "   </tr>" 
    Body = Body & "   <tr>"
    Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """>&nbsp;</td>"
    Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """>&nbsp;</td>"
    Body = Body & "   </tr>"
    Body = Body & "   <tr>"
    Body = Body & "     <td><b>Namn:</b><br>" & RecSet(3)& "&nbsp;" & RecSet(4)& "</td>"
    Body = Body & "     <td><b>Adress:</b><br>" & RecSet(8)& "</td>"
    Body = Body & "   </tr>"
    Body = Body & "   <tr>"
    Body = Body & "     <td><b>Postadress:</b><br>" & RecSet(9)& "&nbsp;" & RecSet(10)& "</td>"
    Body = Body & "     <td><b>Email:</b><br><a href=""mailto:" & RecSet(11)& """>" & RecSet(11)& "</a></td>"
    Body = Body & "   </tr>"
If RecSet(12) <> "" Then
    Body = Body & "   <tr>"
    Body = Body & "     <td style=""border-top: 1px solid " & Color1& """><b>Övrigt:</b></td>"
    Body = Body & "     <td style=""border-top: 1px solid " & Color1& """>" & Replace(RecSet(12), vbCrLf, "<br>") & "</td>"
    Body = Body & "   </tr>"
End If
    Body = Body & "   <tr>"
    Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """>&nbsp;</td>"
    Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """>&nbsp;</td>"
    Body = Body & "   </tr>"
    Body = Body & "   <tr>"
    Body = Body & "     <td colspan=""2"">"
    Body = Body & "   <table border=""0"" cellspacing=""0"" cellpadding=""2"" width=""100%"" align=""center"">"
    Body = Body & "   <tr>"
    Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """ width=""50%""><b>Produkt</b></b></td>"
    Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """ width=""17%"" align=""right""><b>Pris</b></td>"
    Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """ align=""center"" width=""13%""><b>Antal</b></td>"
    Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """ align=""right"" width=""20%""><b>Summa</b></td>"
    Body = Body & "   </tr>"
Set RS=Conn.Execute("Select artNr,quantity,strl,farg From shop_orderinfo Where  ordernr=" & Request.QueryString("send"))
Do Until RS.EOF
  Set Prod=Conn.Execute("Select product,price,mem_price From shop_products Where id=" & RS(0))
    Body = Body & "   <tr>"
    Body = Body & "     <td>" & Prod(0)& "</td>"
If RecSet("kundbest") = 1 Then
  If Prod(2) <> "" Then
    Body = Body & "     <td align=""right""><font color=""red"">" & Formatnumber(Prod(2),0)& "</font> SEK</td>"
  Else
    Body = Body & "     <td align=""right""><font color=""red"">" & Formatnumber(Prod(1),0)& "</font> SEK</td>"
  End If
Else
  Body = Body & "     <td align=""right""><font color=""red"">" & Formatnumber(Prod(1),0)& "</font> SEK</td>"
End If
    Body = Body & "     <td align=""center"">" & RS(1)& "</td>"
If RecSet(13) = 1 Then
  If Prod(2) <> "" Then
    Body = Body & "     <td align=""right""><font color=""red"">" & Formatnumber(RS(1) * Prod(2),0) & "</font> SEK</td>"
  Else
    Body = Body & "     <td align=""right""><font color=""red"">" & Formatnumber(RS(1) * Prod(1),0) & "</font> SEK</td>"
  End If
Else
    Body = Body & "     <td align=""right""><font color=""red"">" & Formatnumber(RS(1) * Prod(1),0) & "</font> SEK</td>"
End If
    Body = Body & "   </tr>"
If RS(2) <> "" or RS(3) <> "" Then
    Body = Body & "    <tr>"
    Body = Body & "      <td valign=""top"" colspan=""4"" style=""border-bottom: 1px solid " & Color1& """>"
    Body = Body & "        <table width=""100%"" cellpadding=""0"" cellspacing=""0"" border=""0"">"
    Body = Body & "          <tr>"
  If RS(3) <> "" Then
    Body = Body & "            <td valign=""bottom"" width=""20%"" class=""mini"">"
    Body = Body & "              <b>Färg</b><br>"
    Body = Body &                RS(3)
    Body = Body & "            </td>"
  ENd If
  If RS(2) <> "" Then
    Body = Body & "            <td valign=""bottom"" width=""20%"" class=""mini"">"
    Body = Body & "              <b>Storlek</b><br>"
    Body = Body &                RS(2)
    Body = Body & "            </td>"
  ENd If
    Body = Body & "            <td valign=""bottom"" width=""60%"" colspan=""2"">&nbsp;</td>"
    Body = Body & "          </tr>"
    Body = Body & "        </table>"
    Body = Body & "      </td>"
    Body = Body & "    </tr>"
ENd If
    If RecSet(13) = 1 Then
      If Prod(2) <> "" Then
        Total = Total + (RS(1) * Prod(2))
      Else
        Total = Total + (RS(1) * Prod(1))
      End If
    Else
      Total = Total + (RS(1) * Prod(1))
    End If
  Prod.Close
  Set Prod=Nothing
RS.MoveNext
Loop
RS.Close
Set RS=Nothing
    Body = Body & "   <tr>"
    Body = Body & "     <td style=""border-top: 1px solid " & Color1& """ align=""right"" colspan=""4""><b>Summa:</b>&nbsp; </b><font color=""red"">" & FormatNumber(Total,0)& "</font> SEK</td>"
    Body = Body & "   </tr>"
    Body = Body & "   <tr>"
    Body = Body & "     <td style=""border-top: 1px solid " & Color1& """ align=""right"" colspan=""4""><b>Frakt:</b>&nbsp; </b><font color=""red"">" & FormatNumber(strFrakt,0)& "</font> SEK</td>"
    Body = Body & "   </tr>"
    Body = Body & "   <tr>"
    Body = Body & "     <td align=""right"" colspan=""4""><b>Totalsumma:</b>&nbsp; </b><font color=""red"">" & FormatNumber(Total+strFrakt,0)& "</font> SEK</td>"
    Body = Body & "   </tr>"
    Body = Body & "  </table>"
    Body = Body & "     </td>"
    Body = Body & "   </tr>"
    Body = Body & "</table>"
    Body = Body & "</body>"

objMail.To = RecSet(11)
objMail.From = Mail
objMail.Subject = OrderBekrRub 
objMail.BodyFormat = 0
objMail.MailFormat = 0
objMail.Body = Body

objMail.Send

RecSet.Close
Set RecSet=Nothing

Conn.Close
Set Conn=Nothing%>
Medlem sedan juni 20034 013 inlägg
#2

Du saknar ett End If här:

Body = Body & " <tr>"
If RS(3) <> "" Then

Medlem sedan dec. 20011 860 inlägg
#3

Den ligger längre ner....Efter detta:
Body = Body & " <td valign=""bottom"" width=""60%"" colspan=""2""> </td>"
Body = Body & " </tr>"
Body = Body & " </table>"
Body = Body & " </td>"
Body = Body & " </tr>"

Jag får inga felmess.....

Medlem sedan juni 20034 013 inlägg
#4

Asa skrev:

Den ligger längre ner....

Aha, hmm... Jo, det här med mellanslagen i början av raderna funkar så här:

När en if-sats eller loop börjar ökar du antalet mellanslag med två. När en if-sats eller loop slutar minskar du med två. Else och Else If placerar man alltid ut med två mellanslag mindre. Exempel:

Do While 1
  i = i + 1
  If Kalle Then
    i = i + 1
    j = k + 1
  Else
    i = i + 2
  End If
  i = i + 1
  If Anna Then
    a = a + 2
    If Nada Then
      j = j + 1
    End If
  End If
Loop
Medlem sedan juni 20034 013 inlägg
#5

Asa skrev:

Jag får inga felmess.....

I så fall är det ett logiskt fel, dvs det du har sagt åt datorn är helt korrekt, men det är inte vad du vill att han/hon ska göra :-)

Och när man stöter på såna problem är det bara att börja felsöka. Det första man får fundera på är var i koden resultatet inte blir som man förväntar sig. I ditt fall skickar den alltså inget brev fast du tycker den borde det.

1. Utförs den delen av koden överhuvudtaget?
* Kolla med hjälp av en debug-rad. Placera ut:
Response.Write("Nu ska brevet skickas.")
på raden före objMail.Send

1.1. Om raden "Nu ska brevet skickas" inte skrivs ut vet du nu att den delen av koden aldrig utförs. Varför? Undersök if-satser och loopar för att se varför den inte kommer dit. Då är det en fördel att man har använt mellanslagen rätt, för då ser man tydligare. Jag har skrivit om din kod så det har blivit rätt och jag infogar den sist här.

1.2. Om raden skrivs ut så vet du att mail-kommandot utförs, men om brevet inte skickas så är det alltså något annat fel. objMail.Send returnerar förmodligen False. Varför? Är objMail ett giltigt objekt? Kan du få ut något felmeddelande av Send-metod? GetLastError?

<!--#Include file="inc/settings.asp"-->

<%

  Set Inst=Conn.Execute("Select frakt From shop_settings limit 1")
  If Not Inst.EOF Then
    strFrakt = Inst(0)
  End If
  Inst.Close
  Set Inst=Nothing

  Set RecSet=Conn.Execute("Select ordernr,foretag,orgnr,fnamn,enamn," & _
    "orderDate,status,paytype,adress,postnr,ort,email,ovrigt," & _
    "kundbest From shop_orders Where ordernr=" & Request.QueryString("send"))

  Set objMail = Server.CreateObject("CDONTS.NewMail")

  Body = "<link rel=""stylesheet"" href=""" & Style & """ type=""text/css"">"
  Body = Body & "<body bgcolor=""#FFFFFF"" text=""#000000"""
  Body = Body & "topmargin=""0"" leftmargin=""0"" marginwidth=""0"""
  Body = Body & " marginheight=""0""><br>"
  Body = Body & "<table border=""0"" width=""75%"" cellspacing=""0"""
  Body = Body &  "cellpadding=""2"" align=""center"" style=""border:"
  Body = Body & " 1px solid " & Color1 & """>"
  Body = Body & "   <tr>"
  Body = Body & "    <td style=""border-bottom: 1px solid " & Color1
  Body = Body &  """ colspan=""2"" valign=""top""><font size=""5""><b>"
  Body = Body & OrderBekrRub & "</b></font></td>"
  Body = Body & "   </tr>"
  Body = Body & "   <tr>"
  Body = Body & "    <td style=""border-bottom: 1px solid " & Color1
  Body = Body & """ colspan=""2"" valign=""top""><font size=""4"">OrderNr:"
  Body = Body & "<font color=""red"">" & RecSet(0) & "</font></font></td>"
  Body = Body & "   </tr>"
  Body = Body & "   <tr>"
  Body = Body & "     <td width=""50%""><b>Orderdatum:</b><br>" & RecSet(5)
  Body = Body & "</td><td width=""50%""> </td>"
  Body = Body & "   </tr>"
  Body = Body & "   <tr>"
  Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """>"
  Body = Body & "<b>Leveranstyp:</b><br>" & RecSet(7) & "</td>"
  Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """>"
  Body = Body & "</td>"
  Body = Body & "   </tr>"
  Body = Body & "   <tr>"
  Body = Body & "     <td width=""50%"" valign=""top""><b>Företag:</b><br>"
  Body = Body & RecSet(1) & "</td>"
  Body = Body & "     <td width=""50%"" valign=""top""><b>OrgNr:</b><br>"
  Body = Body & RecSet(2) & "</td>"
  Body = Body & "   </tr>" 
  Body = Body & "   <tr>"
  Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """>"
  Body = Body & " </td>"
  Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """>"
  Body = Body & " </td>"
  Body = Body & "   </tr>"
  Body = Body & "   <tr>"
  Body = Body & "     <td><b>Namn:</b><br>" & RecSet(3)& " " & RecSet(4)
  Body = Body & "</td>"
  Body = Body & "     <td><b>Adress:</b><br>" & RecSet(8)& "</td>"
  Body = Body & "   </tr>"
  Body = Body & "   <tr>"
  Body = Body & "     <td><b>Postadress:</b><br>" & RecSet(9)& " "
  Body = Body & RecSet(10)& "</td>"
  Body = Body & "     <td><b>Email:</b><br><a href=""mailto:" & RecSet(11)
  Body = Body & """>" & RecSet(11)& "</a></td>"
  Body = Body & "   </tr>"
  If RecSet(12) <> "" Then
    Body = Body & "   <tr>"
    Body = Body & "     <td style=""border-top: 1px solid " & Color1& """>"
    Body = Body & "<b>Övrigt:</b></td>"
    Body = Body & "     <td style=""border-top: 1px solid " & Color1& """>"
    Body = Body & Replace(RecSet(12), vbCrLf, "<br>") & "</td>"
    Body = Body & "   </tr>"
  End If
  Body = Body & "   <tr>"
  Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """>"
  Body = Body & "</td>"
  Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """>"
  Body = Body & "</td>"
  Body = Body & "   </tr>"
  Body = Body & "   <tr>"
  Body = Body & "     <td colspan=""2"">"
  Body = Body & "   <table border=""0"" cellspacing=""0"" cellpadding=""2"""
  Body = Body & " width=""100%"" align=""center"">"
  Body = Body & "   <tr>"
  Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """"
  Body = Body & " width=""50%""><b>Produkt</b></b></td>"
  Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """"
  Body = Body & " width=""17%"" align=""right""><b>Pris</b></td>"
  Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """"
  Body = Body & " align=""center"" width=""13%""><b>Antal</b></td>"
  Body = Body & "     <td style=""border-bottom: 1px solid " & Color1& """"
  Body = Body & " align=""right"" width=""20%""><b>Summa</b></td>"
  Body = Body & "   </tr>"
  Set RS=Conn.Execute("Select artNr,quantity,strl,farg From shop_orderinfo" & _
      " Where  ordernr=" & Request.QueryString("send"))
  Do Until RS.EOF
    Set Prod=Conn.Execute("Select product,price,mem_price From " & _
        "shop_products Where id=" & RS(0))
    Body = Body & "   <tr>"
    Body = Body & "     <td>" & Prod(0)& "</td>"
    If RecSet("kundbest") = 1 Then
      If Prod(2) <> "" Then
        Body = Body & "     <td align=""right""><font color=""red"">"
        Body = Body & Formatnumber(Prod(2),0)& "</font> SEK</td>"
      Else
        Body = Body & "     <td align=""right""><font color=""red"">"
        Body = Body & Formatnumber(Prod(1),0)& "</font> SEK</td>"
      End If
    Else
      Body = Body & "     <td align=""right""><font color=""red"">"
      Body = Body & Formatnumber(Prod(1),0)& "</font> SEK</td>"
    End If
    Body = Body & "     <td align=""center"">" & RS(1)& "</td>"
    If RecSet(13) = 1 Then
      If Prod(2) <> "" Then
        Body = Body & "     <td align=""right""><font color=""red"">"
        Body = Body & Formatnumber(RS(1) * Prod(2),0) & "</font> SEK</td>"
      Else
        Body = Body & "     <td align=""right""><font color=""red"">"
        Body = Body & Formatnumber(RS(1) * Prod(1),0) & "</font> SEK</td>"
     End If
   Else
     Body = Body & "     <td align=""right""><font color=""red"">"
     Body = Body & Formatnumber(RS(1) * Prod(1),0) & "</font> SEK</td>"
    End If
    Body = Body & "   </tr>"
    If RS(2) <> "" or RS(3) <> "" Then
      Body = Body & "    <tr>"
      Body = Body & "      <td valign=""top"" colspan=""4"" style=""border-"
      Body = Body & "bottom: 1px solid " & Color1& """>"
      Body = Body & "        <table width=""100%"" cellpadding=""0"""
      Body = Body & " cellspacing=""0"" border=""0"">"
      Body = Body & "          <tr>"
      If RS(3) <> "" Then
        Body = Body & "            <td valign=""bottom"" width=""20%"""
        Body = Body & " class=""mini"">"
        Body = Body & "              <b>Färg</b><br>"
        Body = Body &                RS(3)
        Body = Body & "            </td>"
      ENd If
      If RS(2) <> "" Then
        Body = Body & "            <td valign=""bottom"" width=""20%"""
        Body = Body & " class=""mini"">"
        Body = Body & "              <b>Storlek</b><br>"
        Body = Body &                RS(2)
        Body = Body & "            </td>"
      ENd If
      Body = Body & "            <td valign=""bottom"" width=""60%"""
      Body = Body & " colspan=""2""> </td>"
      Body = Body & "          </tr>"
      Body = Body & "        </table>"
      Body = Body & "      </td>"
      Body = Body & "    </tr>"
    ENd If
    If RecSet(13) = 1 Then
      If Prod(2) <> "" Then
        Total = Total + (RS(1) * Prod(2))
      Else
        Total = Total + (RS(1) * Prod(1))
      End If
    Else
      Total = Total + (RS(1) * Prod(1))
    End If
    Prod.Close
    Set Prod=Nothing
    RS.MoveNext
  Loop
  RS.Close
  Set RS=Nothing
  Body = Body & "   <tr>"
  Body = Body & "     <td style=""border-top: 1px solid " & Color1& """"
  Body = Body & " align=""right"" colspan=""4""><b>Summa:</b>  </b><font "
  Body = Body & "color=""red"">" & FormatNumber(Total,0)& "</font> SEK</td>"
  Body = Body & "   </tr>"
  Body = Body & "   <tr>"
  Body = Body & "     <td style=""border-top: 1px solid " & Color1& """"
  Body = Body & " align=""right"" colspan=""4""><b>Frakt:</b>  </b><font "
  Body = Body & "color=""red"">" & FormatNumber(strFrakt,0)& "</font> SEK</td>"
  Body = Body & "   </tr>"
  Body = Body & "   <tr>"
  Body = Body & "     <td align=""right"" colspan=""4""><b>Totalsumma:</b>"
  Body = Body & "  </b><font color=""red"">" & FormatNumber(Total+strFrakt,0)
  Body = Body & "</font> SEK</td>"
  Body = Body & "   </tr>"
  Body = Body & "  </table>"
  Body = Body & "     </td>"
  Body = Body & "   </tr>"
  Body = Body & "</table>"
  Body = Body & "</body>"

  objMail.To = RecSet(11)
  objMail.From = Mail
  objMail.Subject = OrderBekrRub 
  objMail.BodyFormat = 0
  objMail.MailFormat = 0
  objMail.Body = Body

  objMail.Send

  RecSet.Close
  Set RecSet=Nothing

  Conn.Close
  Set Conn=Nothing
%>
Medlem sedan dec. 20025 871 inlägg
#6

Har du kollat så att även Mail innehåller rätt adress? När avsändaradressen är fel får man inget felmeddelande. Så som jag har uppfattat ditt inlägg så har du bara kollat om RecSet(11) innehåller rätt värde. :)

Medlem sedan dec. 20011 860 inlägg
#7

Haha, det var felet! Ingem mail fanns i variabeln Mail.

Medlem sedan dec. 20025 871 inlägg
#8

Det är sådana miss man missar ibland. Det händer, och när det händer sitter man fast. :birp

Medlem sedan juni 200032 967 inlägg
Medlem sedan dec. 20011 860 inlägg
#10

Sorry glömde visst @ndrs. Mitt eget inlägg blev slutgiltiga svaret..

266 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)