Toon posts:

[ASP] verzenden van formulier via asp

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben momenteel bezig met een website. In deze heb ik een formulier waarin een e-mail gestuurd kan worden. dit is gewone html code en zit er als volgt uit

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<FORM NAME="Mail" METHOD="post" ACTION="mail.asp">
      <Table>
      <tr>
      <td>
      <font face="verdana" size="2">Naam:</font>
      </td>
      <td> 
      <INPUT TYPE="text" NAME="Naam" SIZE="20" MAXLENGTH="50">
      </td>
      </tr>
      <tr>
      <td>
      <font face="verdana" size="2">E-mail adres:</font>
      </td>
      <td> 
      <INPUT TYPE="text" NAME="e-mail" SIZE="20" MAXLENGTH="50"
      </td>
      </tr>
      <tr>
      <td>
      <font face="verdana" size="2">Onderwerp:</font>
      </td>
      <td> 
      <INPUT TYPE="text" NAME="onderwerp" SIZE="20" MAXLENGTH="50">
      </td>
      </tr>
      </table>
      <table>
      <tr>
      <td>
      <font face="verdana" size="2">Bericht:</font>
      </td>
      </tr>
      <tr>
      <td>
      <TEXTAREA NAME="Tekstvlak" VALUE="Tekstvlak" ROWS="10" COLS="50"></TEXTAREA>
      </td>
      </tr>
      </table>
      <table>
      <tr>
      <td>
      <INPUT TYPE="submit" VALUE="Verzenden">
      </td>
      <td>
      <INPUT TYPE="reset" VALUE="Annuleer">
      </td>
      </tr>
      </table>
      </FORM>


Zoals in deze code is te zien worden de gegeven naar mail.asp gestuurd. Dit script moet er voor zorgen dat de mail zonder een e-mail programma zoals outlook verstuurd wordt naar mijn e-mail. de code van dit mail.asp bestand is als volgt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<html>
<%
'Dimension variabelen
Dim objCDOSYSCon
'Eerst dient het object aangemaakt te worden:
Set objCDOSYSMail = Server.CreateObject("CDO.Message")
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
'Configuratie opties; deze standaard waarden hoeft u niet aan te passen.  
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.test.nl"(test is vervangen)
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objCDOSYSCon.Fields.Update

'Update the CDOSYS Configuration
Set objCDOSYSMail.Configuration = objCDOSYSCon
'Afzender adres:
objCDOSYSMail.From = Request.Form("e-mail")
'Waar het bericht heen gezonden moet worden:
objCDOSYSMail.To = "test@hotmail.com"
'Het onderwerp van het bericht:
objCDOSYSMail.Subject = test

'Hier geeft u de body aan (Gebruik TextBody voor tekst en HTMLBody voor HTML opmaak)
objCDOSYSMail.htmlBody = ("Naam: " & Request.Form("Naam"))& _
("<br>") & _
("Mail: " & Request.Form("e-mail"))& _
("<br>") & _
("Onderwerp: " & Request.Form("Onderwerp"))& _
("<br>") & _
("Tekstvlak: " & Request.Form("Tekstvlak"))
 
'Verstuur het bericht:
[b]objCDOSYSMail.Send[/b]
'Sluit het object:
Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing
%>

<body>
<b><font color="#6600FF">Wij danken u voor deze e-mail.<br>
<br>
U wordt automatisch na 5 seconde na de hoofdpagina doorgestuurd.</font></b>
</body>
</html>


Nu krijg ik de volgende foutmelding:

Technische informatie (voor ondersteunend personeel)

Soort fout:
(0x8004020F)
De gebeurtenisklasse voor dit abonnement bevindt zich in een ongeldige partitie
/mail.asp, line 33


Soort browser:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)

Pagina:
POST 68 bytes naar /mail.asp

POST Data:
Naam=Test&Mail=Test@test.com&onderwerp=test&Tekstvlak=test+test+test

Tijd:
maandag 30 mei 2005, 16:40:41


Meer gegevens:
Microsoft Support

Ik weet niet waar dit aan zou kunnen liggen, wie zou mij kunnen helpen?

[ Voor 19% gewijzigd door Verwijderd op 30-05-2005 16:45 ]


  • Aapje
  • Registratie: Maart 2003
  • Laatst online: 06-05 23:57

Aapje

Opel-beun
'Het onderwerp van het bericht:
objCDOSYSMail.Subject = test

Moet dat niet gequote worden? "test"
Viel me op :9

Ohja, dat hij de error geeft bij send komt omdat send iets wil uitvoeren met de parameters die jij eerder hebt ingevoert (met die gedachte vind ik ook altijd me foutjes)

[ Voor 46% gewijzigd door Aapje op 30-05-2005 17:32 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik heb even vlug ge-Googled en het lijkt me dat je niet mag Relayen ofzo. Gebruik je Exchange Server? Zorg dan dat behalve het interne IP (als in: 192.168.0.1 ofzo) ook het ip 127.0.0.1 mag relayen.

Verder vind ik het CDO object altijd nogal lomp en moeilijk. Wellicht dat je beter even kunt kijken naar (o.a.) Dundas Mailer. Lekker compact, werkt prima en ondesteunt alles wat je nu gebruikt.
BaBoOn schreef op maandag 30 mei 2005 @ 17:29:
'Het onderwerp van het bericht:
objCDOSYSMail.Subject = test

Moet dat niet gequote worden? "test"
Viel me op :9
Ik vrees dat test een variabele is, anders was 'ie nooit bij .Send aangekomen op line 33 ;) Is dat niet het geval, dan dient het inderdaad gequote te worden.

[ Voor 30% gewijzigd door RobIII op 30-05-2005 17:33 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Aapje
  • Registratie: Maart 2003
  • Laatst online: 06-05 23:57

Aapje

Opel-beun
Mja dan komt ie met de variable 'test' wel aan bij send, maar die variable is leeg, dus daar kan hij weinig mee O-)

@Onderbuur, het viel te proberen B)

[ Voor 20% gewijzigd door Aapje op 30-05-2005 17:41 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
BaBoOn schreef op maandag 30 mei 2005 @ 17:33:
Mja dan komt ie met de variable 'test' wel aan bij send, maar die variable is leeg, dus daar kan hij weinig mee O-)
So? Waarom zou hij dan geen LEGE subject kunnen versturen? Als Test nu niet geïnitialiseerd zou zijn ofzo, maar daar heb je onder ASP weinig last van omdat er geen strong-typing wordt gebruikt. Dus tenzij Test al een referentie naar een object bevat ofzo wordt Test gewoon gecast naar een string. Of het nou een lege var is, een long of whatever.

Ik zeg je: De kans is groot dat 'ie niet mag relayen O-)
Is het dat niet, dan zal de TS toch met wat specifiekere informatie moeten komen (zoals: wat heeft hij al geprobeerd? Lukt het wel met een mail-client vanaf de IIS server? Welk OS? Welke IIS versie? Welke Mailserver? etc.)

Overigens, bij nader inzien, ik denk er eerst iets anders stond en dat de TS gewoon even find/replace heeft losgelaten op z'n source voordat 'ie het hier plaatste. Ik zie meer "test" staan her en der ;)
Verwijderd schreef op maandag 30 mei 2005 @ 17:39:
Dat is inderdaad waar dat test gequote moet worden, slordig foutje. Helaas lost dit niets op aan het probleem. De foutmelding die ik eerst had, blijft nog steeds staan.
Heb je al gekeken naar je Relaying? Heb je de overige informatie voor ons (zie deze reply).

[ Voor 54% gewijzigd door RobIII op 30-05-2005 17:40 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Dat is inderdaad waar dat test gequote moet worden, slordig foutje. Helaas lost dit niets op aan het probleem. De foutmelding die ik eerst had, blijft nog steeds staan.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 30 mei 2005 @ 17:39:
Dat is inderdaad waar dat test gequote moet worden, slordig foutje. Helaas lost dit niets op aan het probleem. De foutmelding die ik eerst had, blijft nog steeds staan.
Zie mijn vorige reply. Nog een tip: Gebruik Option Explicit. Dan weet je zeker dat alle variabelen ge-dim-med worden en voorkom je fouten zoals die test die niet gequote was. Nu zag 'ie het dus aan als een (niet ge-dim-de) variabele omdat je Option Explicit niet gebruikt. Had je dat wel gedaan dan had je die fout er al meteen uit gepikt.

Meer over Option Explicit :Y)

[ Voor 39% gewijzigd door RobIII op 30-05-2005 17:47 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Ik zal enige extra informatie geven,

Ik gebruik windows xp pro met iis. Ook als ik deze code op het internet zet werkt de niet (volgens mij best logisch). Ik heb dit script al eerder gebruikt op een andere website, dit werkt overigens goed.

Ik zie in deze codes eigelijk maar weinig verschillen behalve dat er in ene script meerdere velden zijn in het formulier, die dus ook in het asp gedeelte terug komen. Ik denk dat hier de fout niet zit.
Omdat dit de volgende code gewoon uitbreid.

code:
1
2
3
4
5
("Mail: " & Request.Form("e-mail"))& _
("<br>") & _
("Onderwerp: " & Request.Form("Onderwerp"))& _
("<br>") & _
("Tekstvlak: " & Request.Form("Tekstvlak"))


De test die geqoute moet worden stond er al wel in. Ik wil hier later het onderwerp uit een veld van me formulier halen.

Ik heb dit script ook op deze pc gemaakt met dezelfde iis versie en os. Wat zou er fout zijn met mij relaying?(heb hier niet heel veel verstand van)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 30 mei 2005 @ 18:04:
Ik zal enige extra informatie geven,

Ik gebruik windows xp pro met iis. Ook als ik deze code op het internet zet werkt de niet (volgens mij best logisch). Ik heb dit script al eerder gebruikt op een andere website, dit werkt overigens goed.

Ik zie in deze codes eigelijk maar weinig verschillen behalve dat er in ene script meerdere velden zijn in het formulier, die dus ook in het asp gedeelte terug komen. Ik denk dat hier de fout niet zit.
Omdat dit de volgende code gewoon uitbreid.

code:
1
2
3
4
5
("Mail: " & Request.Form("e-mail"))& _
("<br>") & _
("Onderwerp: " & Request.Form("Onderwerp"))& _
("<br>") & _
("Tekstvlak: " & Request.Form("Tekstvlak"))


De test die geqoute moet worden stond er al wel in. Ik wil hier later het onderwerp uit een veld van me formulier halen.

Ik heb dit script ook op deze pc gemaakt met dezelfde iis versie en os. Wat zou er fout zijn met mij relaying?(heb hier niet heel veel verstand van)
Nu weet ik nog steeds niet welke mailserver je gebruikt en of het met een mailclient op de IIS bak wel werkt. Heb je dat al geprobeerd? Heb je de Option Explicit al geprobeerd? Leverde die nog iets op?

Verder: Je kunt niet "zo maar" wat code van het web copy-pasten en dan maar hopen dat het werkt. Niet om lullig te zijn, maar je dient wel enig begrip te hebben van waar je mee bezig bent. Probeer eens te debuggen? Probeer eens wat andere combinaties? Probeer eens een ander component (object) om te zien of je daarmee wel kunt mailen? Stel eens een andere mailserver (die van je ISP bijvoorbeeld) in om te kijken of dat werkt? Kun je telnetten naar die mailserver? Kun je met telnet dan wel een mail versturen? En als je zegt dat 'als ik deze code op het internet zet werkt de niet ', bedoel je dan dat je je ASP heb neergezet bij je ISP? Heeft die wel toegang geschonken tot het CDO object? Gebruikt die misschien een ander object dan CDO? Welke ISP is dat dan?

Als ik weet welke mailserver je gebruikt kan ik je wellicht helpen om je relaying opties te controleren.

[ Voor 47% gewijzigd door RobIII op 30-05-2005 18:16 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
RobIII schreef op maandag 30 mei 2005 @ 18:11:
[...]

Nu weet ik nog steeds niet welke mailserver je gebruikt en of het met een mailclient op de IIS bak wel werkt. Heb je dat al geprobeerd? Heb je de Option Explicit al geprobeerd? Leverde die nog iets op?

Verder: Je kunt niet "zo maar" wat code van het web copy-pasten en dan maar hopen dat het werkt. Niet om lullig te zijn, maar je dient wel enig begrip te hebben van waar je mee bezig bent. Probeer eens te debuggen? Probeer eens wat andere combinaties? Probeer eens een ander component (object) om te zien of je daarmee wel kunt mailen? Stel eens een andere mailserver (die van je ISP bijvoorbeeld) in om te kijken of dat werkt? Kun je telnetten naar die mailserver? Kun je met telnet dan wel een mail versturen? En als je zegt dat 'als ik deze code op het internet zet werkt de niet ', bedoel je dan dat je je ASP heb neergezet bij je ISP? Heeft die wel toegang geschonken tot het CDO object? Gebruikt die misschien een ander object dan CDO? Welke ISP is dat dan?

Als ik weet welke mailserver je gebruikt kan ik je wellicht helpen om je relaying opties te controleren.
Ik heb deze code zelf al een keer aangepast en gebruikt op een andere website gemaakt. dit werkt daar zonder problemen. Ik gebruik nu wel iis maar code staat ook op me host en wekt daar ook niet. Dit is een zelfde pakket bij de zelfde provider. Waarop deze mail.asp moet komen draaien. Dus is mijn vraag omdat het daar niet werkt of het nu wel nut heeft de mail instellingen van mijn iis te gaan controleren? zal de Option Explicit is gaan proberen.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 30 mei 2005 @ 18:23:
[...]


Ik heb deze code zelf al een keer aangepast en gebruikt op een andere website gemaakt. dit werkt daar zonder problemen. Ik gebruik nu wel iis maar code staat ook op me host en wekt daar ook niet. Dit is een zelfde pakket bij de zelfde provider. Waarop deze mail.asp moet komen draaien. Dus is mijn vraag omdat het daar niet werkt of het nu wel nut heeft de mail instellingen van mijn iis te gaan controleren? zal de Option Explicit is gaan proberen.
Wie heeft het over de instellingen van IIS? Ik heb 114 (ofzo :P ) vragen gesteld en de belangrijkste zijn nog steeds onbeantwoord:

• Welke mailserver gebruik je? En je ISP? Of gebruik je de SMTP van IIS zelf?
• Staat de Relaying in je mailserver wel goed? Hoe weet je dat?
• Heb je al eens een andere mailserver geprobeerd? Desnoods een open relay (om te testen)?
• Heb je wel "rechten" om met het CDO object iets te versturen?
• Kun je met een mailclient op de webserver wél mail versturen? Of met Telnet?
• Heb je al eens gekeken naar de Google resultaten voor je foutmelding?
Eventueel (maar is wat meer werk): Wat doet 'ie als je bijvoorbeeld Dundas gebruikt? Of een willekeurig ander Mail object?

En "het werkte eerst wel, maar nu niet meer" hebben we natuurlijk geen bal aan...

Overigens, nog wat specifieker: Google: 0x8004020F partition en Google Groups: 0x8004020F partition. Daar gaat het toch wel érg vaak over relaying O-) Tjek deze maar eens.

[ Voor 68% gewijzigd door RobIII op 30-05-2005 18:49 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Ik heb de oplossing gevonden. Ik wilde naar een ander e-mail adres dan mijn smtp server sturen en dat is natuurlijk niet mogelijk. iig bedankt voor de hulp.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 30 mei 2005 @ 18:49:
Ik heb de oplossing gevonden. Ik wilde naar een ander e-mail adres dan mijn smtp server sturen en dat is natuurlijk niet mogelijk. iig bedankt voor de hulp.
8)7
Relaying dus...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1