webForumDet fria alternativet

problem med cdonts

18 svar · 728 visningar · startad av mackanz

mackanzMedlem sedan sep. 2003443 inlägg
#1

Jag har ett litet problem med cdonts.
Här nedan är ett exempel från https://www.asp-sidan.nu

<%
' kolla om vi ska skicka iväg ett e-mail
If Len(Request.Form("email")) > 0 AND Len(Request.Form("subject")) > 0 AND Len(Request.Form("message")) > 0 Then
Set newMail = CreateObject("CDONTS.NewMail")
newMail.From = Request.Form("email")
newMail.To = "mikael@edebro.net"
newMail.Subject = Request.Form("subject")
newMail.Body = Request.Form("message")
newMail.Send
Set newMail = Nothing

End If
%>

Nu hör det till saken att jag har fler fält. Bland annat:
* Företag
* telefonnummer
* Fax
* hemsida
* Adress
* ort

hur skriver jag för att få med mig detta???

PalleMedlem sedan apr. 20003 174 inlägg
#2

En variant..

[red]<%

' kolla om vi ska skicka iväg ett e-mail
If Len(Request.Form("email")) > 0 AND Len(Request.Form("subject")) > 0 AND Len(Request.Form("message")) > 0 Then

	[b]strBody[/b] = "Lite text här då.."[blue]&[/blue] vbcrlf &_
	"Företag: "& trim(Request.Form("foretag")) & vbcrlf &_
	"Telefon: "& trim(Request.Form("telefon")) & vbcrlf &_
	"o.s.v.."

	Set newMail = CreateObject("CDONTS.NewMail")
		newMail.From = Request.Form("email")
		newMail.To = "mikael@edebro.net"
		newMail.Subject = Request.Form("subject")
		newMail.Body = [b]strBody[/b]
		newMail.Send
	Set newMail = Nothing

End If

%> [/red]

Redigerat: Missade ett &-tecken..

 

mackanzMedlem sedan sep. 2003443 inlägg
#3

Hejsan Palle!
Det fungerade ej.

Min kod ser ut så här:

<%
' kolla om vi ska skicka iväg ett e-mail
If Len(Request.Form("email")) > 0 AND Len(Request.Form("subject")) > 0 AND Len(Request.Form("message")) > 0 Then
Set newMail = CreateObject("CDONTS.NewMail")
strBody = "Lite text här då.." vbcrlf &_
"Företag: "& trim(Request.Form("FORETAG")) & vbcrlf &_
"Adress: "& trim(Request.Form("ADRESS")) & vbcrlf &_
"Stad: "& trim(Request.Form("CITY")) & vbcrlf &_
"Telefon: "& trim(Request.Form("PHONE")) & vbcrlf &_
"Fax: "& trim(Request.Form("FAX")) & vbcrlf &_
"Hemsida: "& trim(Request.Form("HOMEPAGE")) & vbcrlf &_

newMail.From = Request.Form("EMAIL")
newMail.To = "markus.redman@enterab.com"
newMail.Subject = Request.Form("SUBJECT")
newMail.Body = Request.Form("MESSAGE")
newMail.Send
Set newMail = Nothing

End If
%>

<%
'Response.Redirect("kontaktok.htm")
%>

och då fick jag följande felmeddelande:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/kontaktsend.asp, line 15

strBody = "Lite text här då.." vbcrlf &_
-------------------------------^

@ndersMedlem sedan juni 200032 969 inlägg
#4

Du skall ha ett &-tecken före vbCrLf.

mrblondeMedlem sedan aug. 20012 349 inlägg
#5

Du glömde ju ett &

mackanz skrev:

Hejsan Palle!
Det fungerade ej.

Min kod ser ut så här:

<%
' kolla om vi ska skicka iväg ett e-mail
If Len(Request.Form("email")) > 0 AND Len(Request.Form("subject")) > 0 AND Len(Request.Form("message")) > 0 Then
Set newMail = CreateObject("CDONTS.NewMail")
strBody = "Lite text här då.." & vbcrlf &_
"Företag: "& trim(Request.Form("FORETAG")) & vbcrlf &_
"Adress: "& trim(Request.Form("ADRESS")) & vbcrlf &_
"Stad: "& trim(Request.Form("CITY")) & vbcrlf &_
"Telefon: "& trim(Request.Form("PHONE")) & vbcrlf &_
"Fax: "& trim(Request.Form("FAX")) & vbcrlf &_
"Hemsida: "& trim(Request.Form("HOMEPAGE")) & vbcrlf &_

newMail.From = Request.Form("EMAIL")
newMail.To = "markus.redman@enterab.com"
newMail.Subject = Request.Form("SUBJECT")
newMail.Body = Request.Form("MESSAGE")
newMail.Send
Set newMail = Nothing

End If
%>

<%
'Response.Redirect("kontaktok.htm")
%>

och då fick jag följande felmeddelande:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/kontaktsend.asp, line 15

strBody = "Lite text här då.." vbcrlf &_
-------------------------------^

mackanzMedlem sedan sep. 2003443 inlägg
#6

Okej!
När jag lade till det & tecknet och testade kom jag baar till en vit sidan. Innebär det att fungerar??
Jag får ju inget mail i min inbox.

Om jag lägger till en response.redirect som då leder till en bekräftelse sida får jag ett nytt felmeddelande:

Header Error 

/kontaktsend.asp, line 35 

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.Response object error 'ASP 0156 : 80004005'
@ndersMedlem sedan juni 200032 969 inlägg
#7

mackanz skrev:

Okej!
När jag lade till det & tecknet och testade kom jag baar till en vit sidan. Innebär det att fungerar??

Nej, det beror ju på om/hur SMTP-tjänsten på maskinen är konfigurerad, samt om man angett en giltig avsändaradress.

Om jag lägger till en response.redirect som då leder till en bekräftelse sida får jag ett nytt felmeddelande:

Header Error 

/kontaktsend.asp, line 35 

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.Response object error 'ASP 0156 : 80004005'

Sätt följande högst upp i ditt asp-dokument:

Response.buffer = true

Mvh

PalleMedlem sedan apr. 20003 174 inlägg
#8

Denna då?

[red]<%

Response.Buffer = True

' kolla om vi ska skicka iväg ett e-mail
If Len(Request.Form("email")) > 0 AND Len(Request.Form("subject")) > 0 AND Len(Request.Form("message")) > 0 Then

	strBody = "Lite text här då.."& vbcrlf &_
	"Företag: "& trim(Request.Form("FORETAG")) & vbcrlf &_
	"Adress: "& trim(Request.Form("ADRESS")) & vbcrlf &_
	"Stad: "& trim(Request.Form("CITY")) & vbcrlf &_
	"Telefon: "& trim(Request.Form("PHONE")) & vbcrlf &_
	"Fax: "& trim(Request.Form("FAX")) & vbcrlf &_
	"Hemsida: "& trim(Request.Form("HOMEPAGE")) & vbcrlf & vbcrlf &_
	"Meddelande: "& trim(Request.Form("MESSAGE"))

	Set newMail = CreateObject("CDONTS.NewMail")
		newMail.From = trim(Request.Form("EMAIL"))
		newMail.To = "markus.redman@enterab.com"
		newMail.Subject = Request.Form("SUBJECT")
		newMail.Body = strBody
		newMail.Send
	Set newMail = Nothing

	Response.Redirect "kontaktok.htm"

Else
	Response.Write "Nått är fel, mailet kunde inte skickas.."

End If

%>[/red]
mackanzMedlem sedan sep. 2003443 inlägg
#9

Samma felmeddelande fortfarande!

Tar jag bort

 <%
Response.Redirect("kontaktok.htm")
%>

så kommer jag bara till en vit blank sida.
Jag får inga mail på det jag sänt in =(

Jag kör allt på en webbserver där jag laddar upp filerna.

Adress till sidan: http://www.ifkolme.org/kontaktform.asp

mackanzMedlem sedan sep. 2003443 inlägg
#10

Nu fick jag plötsligt detta felmeddelande: Jag är usel på att felmeddelanden. =)

Microsoft VBScript compilation error '800a03f9' 

Expected 'Then' 

/kontaktsend.asp, line 17 

If Len(Request.Form("email")) &gt; 0 AND Len(Request.Form("subject")) &gt; 0 AND Len(Request.Form("message")) &gt; 0 Then
---------------------------------^
PalleMedlem sedan apr. 20003 174 inlägg
#11

..fungerade inte mitt senaste kod-förslag?
Det verkar som om du inte ändrat till den..

mackanzMedlem sedan sep. 2003443 inlägg
#12

Palle:
Koden du skrev 10.54 fungerade ej. Fick följande felmeddelande:

<% 
Response object error 'ASP 0156 : 80004005' 

Header Error 

/kontaktsend.asp, line 16 

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
mackanzMedlem sedan sep. 2003443 inlägg
#13

Palle:
När jag tog bort Response.Buffer = True

kom följande text fram som finns med i koden:

<% Nått är fel, mailet kunde inte skickas.

mackanzMedlem sedan sep. 2003443 inlägg
#14

med följande kod får jag meddelandet att Något är fel, mailet kunde inte skickas.

<%
' kolla om vi ska skicka iväg ett e-mail
If Len(Request.Form("EMAIL")) > 0 AND Len(Request.Form("SUBJECT")) > 0 AND Len(Request.Form("MESSAGE")) > 0 Then

	strBody = "Lite text här då.."& vbcrlf &_
	"Företag: "& trim(Request.Form("FORETAG")) & vbcrlf &_
	"Adress: "& trim(Request.Form("ADRESS")) & vbcrlf &_
	"Stad: "& trim(Request.Form("CITY")) & vbcrlf &_
	"Telefon: "& trim(Request.Form("PHONE")) & vbcrlf &_
	"Fax: "& trim(Request.Form("FAX")) & vbcrlf &_
	"Hemsida: "& trim(Request.Form("HOMEPAGE")) & vbcrlf & vbcrlf &_
	"Meddelande: "& trim(Request.Form("MESSAGE"))

	Set newMail = CreateObject("CDONTS.NewMail")
		newMail.From = trim(Request.Form("EMAIL"))
		newMail.To = "markus.redman@enterab.com"
		newMail.Subject = Request.Form("SUBJECT")
		newMail.Body = strBody
		newMail.Send
	Set newMail = Nothing
	
	

	Response.Redirect "kontaktok.htm"

Else
	Response.Write "Något är fel, mailet kunde inte skickas.."

End If

%>
@ndersMedlem sedan juni 200032 969 inlägg
#15

Är alla tre fälten du kontrollerar ifyllda då?

@ndersMedlem sedan juni 200032 969 inlägg
#16

Du har ju inte satt något namn på textarean, så om du använder fältnamnet MESSAGE för att hämta in datat, kommer det alltid vara en tom sträng och du hamnar i ELSE-delen av din if-sats.

mackanzMedlem sedan sep. 2003443 inlägg
#17

Stort tack till alla som hjälpte mig med detta problem.
Nu är allt löst.

Mvh.
Markus

ZaimanMedlem sedan dec. 20014 239 inlägg
#18

korta ned koden lite kanske?

sBody = ""
	For Each field In Request.Form
		sBody = sBody & field & ": " & Request.Form(field) & Chr(13) & Chr(10)
	Next

Så här skapar jag min body i en del av mina mailsidor.

Lite mindre kod...

grillkillenMedlem sedan sep. 200350 inlägg
#19

Tänk på att du får med alla form-objekt om du använder en For Each Field. Även skicka-knappen, osv. Använd en if-sats för att få bort den.

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)