Avatar billede putzen Nybegynder
17. juni 2006 - 10:43 Der er 10 kommentarer og
1 løsning

e - shoppen & JMail med fejl

Jeg har hentet "e - shoppen" - en fuld færdig lille online shop, som fungerer fint, lige bortset afsendelse af mail! Det er en JMail komponent som webhotellet understøtter.

Der kommer følgende fejlmeddelse ved afsendelse:

jmail.SMTPMail error '8000ffff'

The message was undeliverable. All servers failed to receive the message

/e-shop/order_send.asp, line 224

"e - shoppen" kan ses her. http://www.breton.dk/e-shop/default.htm

Sådan ser siden order_send.asp ud:

<!-- #include file="order_configuration.asp" -->
<%
    Response.Buffer = True

    ' -> DETTE ER VARIABLERNE TIL DATABASEN.
    Dim myConn
    Dim strSQL

    ' -> DSNLess FORBINDELSE TIL DATABASEN.
    Set myConn = Server.CreateObject("ADODB.Connection")
    myConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("e-shop.mdb")

    strSQL = "SELECT KategoriID, KategoriNavn, KategoriParent, KategoriRank FROM Kategorier ORDER BY KategoriRank"

    Set rs = myConn.Execute(strSQL)

    Dim Kategorier(100,4)

    While Not rs.EOF

    If i < 100 Then
    Kategorier(i,0) = rs("KategoriNavn")
    Kategorier(i,1) = rs("KategoriParent")
    Kategorier(i,2) = rs("KategoriID")
    Kategorier(i,3) = rs("KategoriRank")
    End If

    i = i +1

    rs.MoveNext
    Wend

    arrayLength = i -1

    Function Show_search(Parent1, KategoriLayer)
    If Parent1 <> vbNullString Then
    For t = 0 To arrayLength

    If Kategorier(t,1) = Parent1 Then
    EmptySpace = ""

    For x = 0 To KategoriLayer
    EmptySpace = EmptySpace & "&nbsp;&nbsp;"

    ' -> 'EmptySpace & "&nbsp;&nbsp;"' LAVER EN INDRYKNING FOR HVER KATEGORI.

    Next

    If KategoriLayer = 0 Then
    CSS_Start = ""
    CSS_End = ""
    End If

    ' -> 'CSS_Start' OG 'CSS_End' TILLADER SPECIEL CSS SPECIFIKATION FOR HVER HOVEDKATEGORI (PARENT).

    Response.Write(EmptySpace & "<a href=" & chr(34) & "order_product.asp?r=" & Kategorier(t,2) & chr(34) & ">" & CSS_Start & Kategorier(t,0) & CSS_End & "</a><br clear=" & chr(34) & "all" & chr(34) & ">" & vbCrLf)
    Parent2 = Kategorier(t,2)
    KategoriLayer1 = KategoriLayer +1
    Show_search Parent2, KategoriLayer1
    End If

    Next

    End If
    End Function

    Function CheckField(input)
    If Len(input) < 1 Then OK = 1
    CheckField = input
    End Function
%>
<%
    Response.AddHeader "cache-control","private"
    Response.AddHeader "pragma","no-cache"
    Response.CacheControl = "no-cache"
    Response.CacheControl = "private"
    Response.Expires = -1
    Response.ExpiresAbsolute = Now() -1
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>e-shop'en</title>

    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="expires" content="-1">
    <meta http-equiv="pragma" content="no-cache">
    <meta name="author" content="e-shop'en">
    <meta name="description" content="e-shop'en">
    <meta name="keywords" content="e-shop'en">

    <link rel="stylesheet" type="text/css" href="e-shop.css">
</head>

<body onLoad="if ('Navigator' == navigator.appName) document.forms[0].reset();">

<!-- TITEL START -->

<table align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tr>
<td align="left" valign="top" width="600">

<h1>e - s h o p ' e n</h1>

</td>
</tr>
</table>

<!-- TITEL SLUT -->

<!-- TOM TABEL FOR AT GIVE MERE PLADS -->

<table align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tr>
<td align="left" valign="top" width="600">
<p>&nbsp;</p>
</td>
</tr>
</table>

<!-- INDHOLD START -->

<table align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tr>
<td align="left" valign="top" width="140">

<h3>Ordre Status</h3>
</td>

<td align="left" valign="top" width="460">
<%
    OK = 0
    If OrderForm_Name      = True Then orderPerson = OrderPerson & OrderEmail_Name & ": " & CheckField(Request.Form("OrderForm_Name")) & vbCrLf
    If OrderForm_Street    = True Then orderPerson = OrderPerson & OrderEmail_Street & ": " & CheckField(Request.Form("OrderForm_Street")) & vbCrLf
    If OrderForm_PostalCode = True Then orderPerson = OrderPerson & OrderEmail_PostalCode & ": " & CheckField(Request.Form("OrderForm_PostalCode")) & vbCrLf
    If OrderForm_City      = True Then orderPerson = OrderPerson & OrderEmail_City & ": " & CheckField(Request.Form("OrderForm_City")) & vbCrLf
    If OrderForm_Phone      = True Then orderPerson = OrderPerson & OrderEmail_Phone & ": " & CheckField(Request.Form("OrderForm_Phone")) & vbCrLf
    If OrderForm_Email      = True Then orderPerson = OrderPerson & OrderEmail_Email & ": " & CheckField(Request.Form("OrderForm_Email")) & vbCrLf & vbCrLf
    If OrderForm_Message    = True Then orderPerson = OrderPerson & OrderEmail_Message & ": " & CheckField(Request.Form("OrderForm_Message")) & vbCrLf

    If OK = 0 Then
    OnlineOrder = Session("OnlineOrder")

    If isArray(OnlineOrder) Then
    i = Session("Items")
    OrderMailText = OrderMailText & vbCrLf & vbCrLf
    OrderMailText = OrderMailText & orderPerson & vbCrLf
    OrderMailText = OrderMailText & "-------------------------------------------" & vbCrLf
    For t = o To i

    If (OnlineOrder(t,0)) <> "" Then
    AllTogether_PerProduct = + OnlineOrder(t,0) * OnlineOrder(t,2)
    AllTogether_AllProducts = formatNumber(AllTogether_AllProducts + AllTogether_PerProduct, 2,,-2)
    OrderMailText = OrderMailText & ListProduct & ": " & OnlineOrder(t,4) & vbCrLf
    OrderMailText = OrderMailText & ListNumber & ": " & OnlineOrder(t,3) & vbCrLf
    OrderMailText = OrderMailText & ListQuantity & ": " & OnlineOrder(t,0) & vbCrLf
    OrderMailText = OrderMailText & ListPrice & ": " & ListCurrency & formatNumber(OnlineOrder(t,2), 2,,-2) & vbCrLf
    OrderMailText = OrderMailText & ListTotal & ": " & ListCurrency & formatNumber(AllTogether_PerProduct, 2,,-2) & vbCrLf
    OrderMailText = OrderMailText & "-------------------------------------------" & vbCrLf
    End If

    Next

    OrderMailText = OrderMailText & ListSubtotal & ": " & ListCurrency & formatNumber(AllTogether_AllProducts, 2,,-2) & vbCrLf
    OrderMailText = OrderMailText & ListShipping & ": " & ListCurrency & ListShipping_Value & vbCrLf
    OrderMailText = OrderMailText & "-------------------------------------------" & vbCrLf
    OrderMailText = OrderMailText & ListSubTotalShipping & ": " & ListCurrency & formatNumber((AllTogether_AllProducts * ListZero_Value) + ListShipping_Value, 2,,-2) & vbCrLf
    OrderMailText = OrderMailText & "-------------------------------------------" & vbCrLf
    OrderMailText = OrderMailText & ListTax & ": " & ListCurrency & formatNumber((AllTogether_AllProducts * ListTax_Value) + (ListShipping_Value * ListTax_Value), 2,,-2) & vbCrLf
    OrderMailText = OrderMailText & "-------------------------------------------" & vbCrLf
    OrderMailText = OrderMailText & ListTotal_AllTogether & ": " & ListCurrency & formatNumber((AllTogether_AllProducts * ListTotal_AllTogether_Value) + (ListShipping_Value * ListTotal_AllTogether_Value), 2,,-2) & vbCrLf
    OrderMailText = OrderMailText & "-------------------------------------------"

' ---------> HER BEGYNDER MAILKOMPONENTEN.

    ' -> DENNE MAILKOMPONENT ER 'JMail'.

    ' -> DETTE ER VARIABLERNE FRA FORMULARFELTERNE.
    Dim strOrderForm_Name
    Dim strOrderForm_Email
    Dim strRecipient_Name
    Dim strRecipient_Email

    strOrderForm_Name = Request.Form("OrderForm_Name")
    strOrderForm_Email = Request.Form("OrderForm_Email")
    strRecipient_Name = "e-shop'en"
    strRecipient_Email = "lemo@gribskovens.dk"

    ' -> DETTE ÅBNER ET MAILSERVEROBJEKT.
    Set JMail = Server.CreateObject("JMail.SMTPMail")

    ' -> DETTE ER MAILSERVEREN, DER VIL SENDE E-MAIL'EN.
    JMail.ServerAddress = "mail.breton.dk"

    ' -> DETTE ER AFSENDERENS NAVN FRA FORMULARFELTET.
    JMail.SenderName = strOrderForm_Name

    ' -> DETTE ER AFSENDERENS E-MAIL ADRESSE FRA FORMULARFELTET.
    JMail.Sender = strOrderForm_Email

    ' -> DETTE ER AFSENDERENS SVAR E-MAIL ADRESSE FRA FORMULARFELTET.
    JMail.ReplyTo = strOrderForm_Email

    ' -> DETTE ER MODTAGERENS E-MAIL ADRESSE OG NAVN ("E-MAIL ADRESSE", "NAVN").
    JMail.AddRecipientEx strRecipient_Email, strRecipient_Name

    ' -> DETTE ER MODTAGERENS E-MAIL ADRESSE OG NAVN ("E-MAIL ADRESSE", "NAVN").
    ' -> BEMÆRK: DETTE SENDER EN KOPI AF ORDREN TIL AFSENDEREN FRA FORMULAREN.
    JMail.AddRecipientEx strOrderForm_Email, strOrderForm_Name

    ' -> DETTE ER EMNET PÅ E-MAIL'EN.
    JMail.Subject = "e-shop'en - Ordre"

    ' -> DETTE ANGIVER PRIORITETEN: 1 = HØJ, 3 = NORMAL, 5 = LAV.
    JMail.Priority = 3

    ' -> DETTE ANGIVER INDHOLDETS TYPE.
    JMail.ContentType = "text/plain"

    ' -> DETTE ER INDHOLDET AF E-MAIL'EN. STANDARDTEKST ER KOMBINERET MED FORMULARVARIABLER.
    JMail.Body = OrderMailText

    JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")

    JMail.Execute
    Set JMail = Nothing

' ---------> HER SLUTTER MAILKOMPONENTEN.
    End If
    End If
%>
<%If OK = 0 Then%>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="440">
<tr>
<td align="left" valign="top" width="440">

<%=OrderSubmitted%>

<!-- ORDRE HER - START -->

<table align="center" border="0" cellpadding="0" cellspacing="0" width="350">
<tr>
<td align="left" valign="top" width="100%">
<p><span class="order"><%
    If Not isNull(OrderMailText) Then

    ' -> MELLEMRUM, LINIESKIFT OG SPECIALTEGN BLIVER HER ERSTATTET MED KORREKT HTML-KODE.

    OrderMailText = Replace(OrderMailText, "      ", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", 1, -1, 1)
    OrderMailText = Replace(OrderMailText, "      ", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", 1, -1, 1)
    OrderMailText = Replace(OrderMailText, "    ", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", 1, -1, 1)
    OrderMailText = Replace(OrderMailText, "    ", "&nbsp;&nbsp;&nbsp;&nbsp;", 1, -1, 1)
    OrderMailText = Replace(OrderMailText, "  ", "&nbsp;&nbsp;&nbsp;", 1, -1, 1)
    OrderMailText = Replace(OrderMailText, "  ", "&nbsp;&nbsp;", 1, -1, 1)
    OrderMailText = Replace(OrderMailText, vbCrLf, "<br clear=" & chr(34) & "all" & chr(34) & ">" & vbCrLf, 1, -1, 1)
    OrderMailText = Replace(OrderMailText, "&gt;", ">")
    OrderMailText = Replace(OrderMailText, "&lt;", "<")
    OrderMailText = Replace(OrderMailText, "&quot;", chr(32))

    ' -> ORDREN BLIVER HER UDSKREVET MED OVENSTÅENDE ERSTATNINGER.

    Response.Write OrderMailText
    End If
%></span></p>
</td>
</tr>
</table>

<!-- ORDRE HER - SLUT -->

</td>
</tr>
</table>
<%Else%><table align="center" border="0" cellpadding="0" cellspacing="0" width="440">
<tr>
<td align="left" valign="top" width="440">

<%=OrderFailed%>
</td>
</tr>
</table>

<center>
<p>- <a href="java script:history.go(-1);">TILBAGE</a> -</p>
</center>
<%End If%>
<%
    rs.Close
    Set rs = Nothing

    myConn.Close
    Set myConn = Nothing

    Erase Kategorier
%>
</td>
</tr>
</table>

<!-- INDHOLD SLUT -->

<!-- TOM TABEL FOR AT GIVE MERE PLADS -->

<table align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tr>
<td align="left" valign="top" width="600">
<p>&nbsp;</p>
</td>
</tr>
</table>

<!-- FODNOTE START -->

<table align="center" border="0" cellpadding="0" cellspacing="0" width="600">
<tr>
<td align="center" valign="top" width="600">

<hr noshade size="1" width="100%">

<p><span class="small">| Alle produkter er fiktive og kun til demonstration |</span></p>
</td>
</tr>
</table>

<!-- FODNOTE SLUT -->

</body>
<head>
    <meta http-equiv="expires" content="-1">
    <meta http-equiv="pragma" content="no-cache">
</head>
</html>

Håber på lidt hjælp, da jeg ikke kender til asp!

Putzen
Avatar billede hnteknik Novice
17. juni 2006 - 11:21 #1
Du hargivetvis ikke sat din jmail op til at anvende dit websteds mailserver. Se hvordan deres webmailserver skal hedde og ret dte i konfigurationen på dit købte web shop script
Avatar billede putzen Nybegynder
17. juni 2006 - 14:12 #2
Det har jeg gjort nu, men der er stadig fejl:

jmail.SMTPMail error '8000ffff'

The message was undeliverable. All servers failed to receive the message

/e-shop/order_send.asp, line 224

Scriptet ser nu således ud:

' -> DENNE MAILKOMPONENT ER 'JMail'.

    ' -> DETTE ER VARIABLERNE FRA FORMULARFELTERNE.
    Dim strOrderForm_Name
    Dim strOrderForm_Email
    Dim strRecipient_Name
    Dim strRecipient_Email

    strOrderForm_Name = Request.Form("OrderForm_Name")
    strOrderForm_Email = Request.Form("OrderForm_Email")
    strRecipient_Name = "e-shop'en"
    strRecipient_Email = "lemo@gribskovens.dk"

    ' -> DETTE ÅBNER ET MAILSERVEROBJEKT.
    Set JMail = Server.CreateObject("JMail.SMTPMail")

    ' -> DETTE ER MAILSERVEREN, DER VIL SENDE E-MAIL'EN.
    JMail.ServerAddress = "websmtp.breton.dk"

    ' -> DETTE ER AFSENDERENS NAVN FRA FORMULARFELTET.
    JMail.SenderName = strOrderForm_Name

    ' -> DETTE ER AFSENDERENS E-MAIL ADRESSE FRA FORMULARFELTET.
    JMail.Sender = strOrderForm_Email

    ' -> DETTE ER AFSENDERENS SVAR E-MAIL ADRESSE FRA FORMULARFELTET.
    JMail.ReplyTo = strOrderForm_Email

    ' -> DETTE ER MODTAGERENS E-MAIL ADRESSE OG NAVN ("E-MAIL ADRESSE", "NAVN").
    JMail.AddRecipientEx strRecipient_Email, strRecipient_Name

    ' -> DETTE ER MODTAGERENS E-MAIL ADRESSE OG NAVN ("E-MAIL ADRESSE", "NAVN").
    ' -> BEMÆRK: DETTE SENDER EN KOPI AF ORDREN TIL AFSENDEREN FRA FORMULAREN.
    JMail.AddRecipientEx strOrderForm_Email, strOrderForm_Name

    ' -> DETTE ER EMNET PÅ E-MAIL'EN.
    JMail.Subject = "e-shop'en - Ordre"

    ' -> DETTE ANGIVER PRIORITETEN: 1 = HØJ, 3 = NORMAL, 5 = LAV.
    JMail.Priority = 3

    ' -> DETTE ANGIVER INDHOLDETS TYPE.
    JMail.ContentType = "text/plain"

    ' -> DETTE ER INDHOLDET AF E-MAIL'EN. STANDARDTEKST ER KOMBINERET MED FORMULARVARIABLER.
    JMail.Body = OrderMailText

    JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")

    JMail.Execute
    Set JMail = Nothing

' ---------> HER SLUTTER MAILKOMPONENTEN.
Avatar billede hnteknik Novice
17. juni 2006 - 15:06 #3
Der skal også være en kendt - af webstedet - afsender emailadresse f.eks. admin@breton.dk - jeg kans ikke afsender mailadresse nogen steder ??!!
Avatar billede putzen Nybegynder
17. juni 2006 - 15:39 #4
Du har ret - Det virker, SKØNT! Tusinde tak!
Avatar billede putzen Nybegynder
17. juni 2006 - 15:49 #5
Skal du ikke SVARE, før du kan få point? -eller er der noget jeg har glemt?
Avatar billede hnteknik Novice
17. juni 2006 - 15:56 #6
Hermed gjort - held og lykke med butikken
Avatar billede hnteknik Novice
28. juni 2006 - 12:12 #7
Lukker du ?
Avatar billede putzen Nybegynder
29. juni 2006 - 07:25 #8
ja, shoppen virker efter hensigten, nu skal den bare "gøres fin" - har du ikke fået point?
Avatar billede hnteknik Novice
29. juni 2006 - 08:57 #9
Nøøøø - den flager åben. Det er ikke så meget points, men det er vigtig at sagerne lukkes for dem , der søger i bassen efter en løsning ;-)
Avatar billede putzen Nybegynder
29. juni 2006 - 16:10 #10
Har prøvet at give dig point'ene igen - herfra ser det rigtigt ud.
Avatar billede hnteknik Novice
29. juni 2006 - 20:18 #11
Nu er en der - tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester