Avatar billede pfp Nybegynder
18. marts 2001 - 21:56 Der er 29 kommentarer og
1 løsning

Formmail med Jmail...

Hejsa

Jeg vil gerne have lavet et lidt avanceret form for formmail, der skal fungere via JMail. I det allerførste felt bliver brugeren præsenteret for en combo, hvor han/hun skal vælge en modtager. Jeg vil derfor gerne have lavet sådan, at hvis fx Peter vælges sendes formularen til peter@post.dk og hvis Kim vælges i comboen sendes formularen til kim@post.dk

Formularen indeholder disse felter:
- Modtager
- Emne
- Besked
- Navn
- Virksomhed
- Adresse
- Postnummer
- By
- Telefon
- E-mail
- Web-site

Jeg håber I forstår hvad det er jeg skal bruge og at I vil hjælpe mig.

/Peter F. Poulsen
Avatar billede netsrac Praktikant
18. marts 2001 - 22:13 #1
<% action = request.querystring(\"action\")
if action = \"send\" then
if request.form(\"til\") = \"sten\" then
email = \"sten@domain.dk\"
end if
if request.form(\"til\") = \"jens\" then
email = \"jens@domain.dk\"
end if

for each item in request.form
tmp = tmp & item & \": \" & request.form(item) & vbcrlf
next

Set JMail          = Server.CreateObject(\"JMail.SMTPMail\")
JMail.ISOEncodeHeaders = False
JMail.ServerAddress = \"smtp.domain.dk\"
JMail.Sender        = \"formmail@domain.dk\"
JMail.Subject      = \"Frommail\"
JMail.AddRecipient  email
JMail.Priority      = 3
JMail.Body = tmp
JMail.Execute
response.write(\"Din mail er afsendt\")



else%>
<form action=\"mail.asp?action=send\">
Til:
<select name=\"til\">
<option value=\"sten\">STEN</option>
<option value=\"jens\">STEN</option>
</select>
indsæt dine andre felter her!

<%end if%>
Avatar billede netsrac Praktikant
18. marts 2001 - 22:20 #2
<% action = request.querystring(\"action\")
if action = \"send\" then
if request.form(\"til\") = \"sten\" then
email = \"sten@domain.dk\"
end if
if request.form(\"til\") = \"jens\" then
email = \"jens@domain.dk\"
end if

for each item in request.form
tmp = tmp & item & \": \" & request.form(item) & vbcrlf
next

Set JMail          = Server.CreateObject(\"JMail.SMTPMail\")
JMail.ISOEncodeHeaders = False
JMail.ServerAddress = \"smtp.domain.dk\"
JMail.Sender        = \"formmail@domain.dk\"
JMail.Subject      = \"Frommail\"
JMail.AddRecipient  email
JMail.Priority      = 3
JMail.Body = tmp
JMail.Execute
response.write(\"Din mail er afsendt\")



else%>
<form action=\"mail.asp?action=send\">
Modtager:
<select name=\"til\">
<option value=\"sten\">STEN</option>
<option value=\"jens\">JENS</option>
</select><BR>
Emne<br>
<input type=\"text\" name=\"emne\"><br>
Besked<br>
<input type=\"text\" name=\"besked\"><br>
Navn<br>
<input type=\"text\" name=\"navn\"><br>
Virksomhed<br>
<input type=\"text\" name=\"virksomhed\"><br>
Adresse<br>
<input type=\"text\" name=\"adresse\"><br>
Postnummer<br>
<input type=\"text\" name=\"postnummer\"><br>
By<br>
<input type=\"text\" name=\"by\"><br>
Telefon<br>
<input type=\"text\" name=\"telefon\"><br>
Email<br>
<input type=\"text\" name=\"email\"><br>
Website<br>
<input type=\"text\" name=\"website\"><br>
<input type=\"submit\" value=\"send\">
</form>

<%end if%>
Avatar billede pfp Nybegynder
19. marts 2001 - 14:37 #3
netsrac>>

Hvis jeg bruger dette modtager jeg ingen e-mail. Alt hvad jeg indtaster bliver bare flyttet op i URL\'en. Jeg får heller ikke beskeden \"Din besked er sendt\"

Hvorfor???

/Peter F. Poulsen
Avatar billede netsrac Praktikant
19. marts 2001 - 14:40 #4
<form action=\"mail.asp?action=send\">
Skal ændres til:

<form action=\"mail.asp?action=send\" method=\"post\">
Avatar billede pfp Nybegynder
19. marts 2001 - 14:46 #5
netsrac >>

Nu får jeg en 500 - Http intern server fejl el. noget lign. Jeg ved at serveren understøtter JMail for det er kun knap en uge siden du lavede et andet formmail script til mig, og det virkede perfekt?

/Peter F. Poulsen
Avatar billede netsrac Praktikant
19. marts 2001 - 14:51 #6
I din browser:

Værktøjer -> Internet Indstillinger -> Avanceret -> Fjern kryds i \"vis uskadelige http fejl\"

og fortæl mig så hvilken fejl du får :-)
Avatar billede pfp Nybegynder
19. marts 2001 - 14:54 #7
jmail.SMTPMail error \'8000ffff\'

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

/mail.asp, line 22

Linie 22 ser sådan her ud:
JMail.Execute

/Peter F. Poulsen
Avatar billede netsrac Praktikant
19. marts 2001 - 15:04 #8
Har du ændret disse linier til din server ?

JMail.ServerAddress = \"smtp.domain.dk\"
JMail.Sender        = \"formmail@domain.dk\"
Avatar billede pfp Nybegynder
19. marts 2001 - 15:26 #9
netsrac >>

Ja, jeg har ændret begge???!!

/Peter F. Poulsen

Avatar billede netsrac Praktikant
19. marts 2001 - 15:30 #10
Okay...fejlfinding:

lige inden:
for each item in request.form
tmp = tmp & item & \": \" & request.form(item) & vbcrlf
next

indsætter du:
on error resume next
response.write(email)

Hvad bliver der udskrevet på skærmen ?
Avatar billede pfp Nybegynder
19. marts 2001 - 15:35 #11
Nu siger den din mail blev sendt!

Men jeg har ikke umiddelbart modtaget den endnu, men det kan være den kommer senere.

/Peter F. Poulsen
Avatar billede netsrac Praktikant
19. marts 2001 - 15:38 #12
Skriver den ingen email adresse på skærmen ?

Har du et sted hvor jeg kan se det ?
Avatar billede pfp Nybegynder
19. marts 2001 - 16:23 #13
Netsrac >>

Jeg har nu prøvet det 2 gange og jeg modtager ingenting. Du kan prøve at se det på:

http://www.votus.dk/mail.asp

/Peter F. Poulsen

PS! Kan det være en fejl på min maskine, jeg har før haft temmelig alvorlige fejl, i forbindelse med min IIS og Win2K?


Avatar billede netsrac Praktikant
19. marts 2001 - 16:27 #14
Hm...har du ændret disse linier også ?

if request.form(\"til\") = \"sten\" then
email = \"sten@domain.dk\"
end if
if request.form(\"til\") = \"jens\" then
email = \"jens@domain.dk\"
end if



Grunden til at den skriver det med at mailen er afsendt er fordi jeg bad dig indsætte linien

on error resume next

Det var for at fejlfinde...
Avatar billede pfp Nybegynder
19. marts 2001 - 16:31 #15
Jeg har ændret:

if request.form(\"til\") = \"sten\" then
email = \"sten@domain.dk\"
end if
if request.form(\"til\") = \"jens\" then
email = \"jens@domain.dk\"
end if

til

if request.form(\"til\") = \"Peter\" then
email = \"peter@votus.dk\"
end if
if request.form(\"til\") = \"Kim\" then
email = \"kim@votus.dk\"
end if

Og jeg har indsat:

on error resume next
response.Write(email)

Hvad er din mail adresse, så kan jeg evt. prøve at sende filen til dig.

/Peter F. Poulsen
Avatar billede netsrac Praktikant
19. marts 2001 - 16:37 #16
Ved godt hvad der er galt:

navnet som står i denne linie:
if request.form(\"til\") = \"Peter\" then

Skal svare overens med navnet som står under value i denne linie:

<option value=\"sten\">STEN</option>

Selv med store og små bogstaver.
Avatar billede pfp Nybegynder
19. marts 2001 - 16:41 #17
netsrac >>

Nu fik jeg ihvertfald udskrevet \"peter@votus.dk Din mail er sendt\". Så er det bare spændende om der kommer noget :-)

/Peter F. Poulsen
Avatar billede netsrac Praktikant
19. marts 2001 - 16:42 #18
Det skulle der gerne :-)

Når du så har modtaget mailen kan du godt fjerne linierne:

on error resume next
response.Write(email)

Avatar billede pfp Nybegynder
19. marts 2001 - 16:52 #19
netsrac >>

Jeg har bare desværre ikke modtaget nogen mail :-(

Hvad skal der stå i feltet JMail.Sender?

/Peter F. Poulsen
Avatar billede netsrac Praktikant
19. marts 2001 - 16:55 #20
Jmail.Sender skal indeholde afsender adressen.

Prøv at fjerne

on error resume next

melder den så fejl ?
Avatar billede pfp Nybegynder
19. marts 2001 - 16:57 #21
Den siger bare \"Din mail er sendt\"

/Peter F. Poulsen
Avatar billede pfp Nybegynder
19. marts 2001 - 16:58 #22
Er det i teorien ikke lige meget hvilken e-mail adresse jeg skriver som afsenderadresse, her har jeg bare brugt min anden e-mail adresse. Er det ikke ok?

/Peter F. Poulsen
Avatar billede netsrac Praktikant
19. marts 2001 - 17:00 #23
Det skulle være ligemeget.

Hvor har du webhotel og hvad har du rettet denne linie til ?

JMail.ServerAddress = \"smtp.domain.dk\"

Avatar billede pfp Nybegynder
19. marts 2001 - 17:08 #24
Jeg har web-hotel hos StruetNet (zipweb.dk)

De siger at min smtp-server er afhænging af hvilken opkobling, jeg er på. Derfor har jeg ændret det til:

JMail.ServerAddress = \"mail.tele.dk\"

Noget andet er at jeg syntes det er underligt/træls, at det er afhængig af min opkobling, da jeg ofte bruger forskellige (på arbejde og privat)

/Peter F. Poulsen

Avatar billede netsrac Praktikant
19. marts 2001 - 17:11 #25
Hm....der er da vist noget helt galt der, bruger du også den på den anden formmail som jeg lavede den anden dag ?
Avatar billede pfp Nybegynder
19. marts 2001 - 17:24 #26
Ja det gør jeg nemlig, det er det der er det underlige ved det.

/Peter F. Poulsen
Avatar billede netsrac Praktikant
19. marts 2001 - 17:30 #27
Det holder ikke en meter for teledanmark lader ikke hvem som helst sende igennem deres smtp servere.

I grunden elendige support sider Struer.net har, der står ikke noget som helst om hvilken mailserver man skal anvende fra sine scripts.

Har du prøvet med

mail.ditdomain.dk ?

Desuden tror jeg at de har ment at det med hvilken smtp server du skal bruge har været med hensyn til afsendelse af mails fra dit email program.
Avatar billede pfp Nybegynder
19. marts 2001 - 18:08 #28
OK det kan godt være, jeg prøver lige at bruge mail.votus.dk

/Peter F. Poulsen
Avatar billede pfp Nybegynder
19. marts 2001 - 18:10 #29
Det var som syv søren, det var det eneste der skulle til. Jeg siger endnu engang mange tak for hjælpen. Du får lige dine velfortjente point.

/Peter F. Poulsen
Avatar billede netsrac Praktikant
19. marts 2001 - 18:14 #30
Så lidt :-)
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