Avatar billede gr8m8 Novice
27. januar 2004 - 12:56 Der er 16 kommentarer og
1 løsning

kontaktformular med ASPmail

Hej Gutter,

jeg har en kontakt formular der skal sendes via ASPmail fra serveren til en bestemt email adresse.
Jeg har tidligere brugt Jmail men ikke arbejdet med ASPmail endnu, så jeg ville være meget taknemmelig hvis en af jer kunne hjælpe mig med at få dette til at virke kodemæssigt.

De steder jeg har er:

Navn
Firma
Adresse
Postnummer
By
Telefon
Mobil
Email
Besked

Dernæst skal der være mulighed for at klikke i en tjekbox og så skal der automatisk afsendes en email til personens email fra info@mitfirma.com med et vedhæftet word dokument.

Siger tusind tak på forhånd for jeres hjælp.
Avatar billede eagleeye Praktikant
27. januar 2004 - 20:56 #1
Prøv sådan her. Du skal nok lige kigge koden igennem for der skal jo skrives et par email adresser og navne i. Samt email server navnet.:



<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

  navn = Request.Form("navn")
  firma = Request.Form("firma")
  adresse = Request.Form("adresse")
  postnummer = Request.Form("postnummer")
  by = Request.Form("by")
  telefon = Request.Form("telefon")
  mobil = Request.Form("mobil")
  email = Request.Form("email")
  besked = Request.Form("besked")
  modtag = Request.Form("modtag")


  Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
  Mailer.FromName  = "Dit navn"
  Mailer.FromAddress= "dinemail@site.dk"
  Mailer.RemoteHost = "mailhost.localisp.net"  'samme som den du bruger i JMail
  ' Mailer.AddRecipient skal hvade to paramater og vil man kun bruger email skal det være:
  ' Mailer.AddRecipient "", "email@site.dk"
  Mailer.AddRecipient "Dit navn", "email@site.dk"
  Mailer.Subject    = "En mail fra siden"
 
  body = "Hej en ny mail " & vbCrLf & vbCrLf
  body = body & "Data fra formen:" & vbCrLF
  body = body & "Navn : " & navn & vbCrLf
  body = body & "Firma : " & firma & vbCrLf
  body = body & "Adresse : " & adresse & vbCrLf
  body = body & "Postnummer : " & postnummer & vbCrLf
  body = body & "By : " & by & vbCrLf
  body = body & "Telefon : " & telefon & vbCrLf
  body = body & "Mobil : " & mobil & vbCrLf
  body = body & "E-mail : " & email & vbCrLf
  body = body & "Besked : " & server.HTMLEncode(besked) & vbCrLf
  body = body & vbCrLf & "Med venlig hilsen" & vbCrLf
  body = body & "Min side"
  Mailer.BodyText  = body
  if Mailer.SendMail then
  else
    Response.Write "Mail send failure. Error was " & Mailer.Response
  end if
 
  Set Mailer = Nothing

  'Tjek om checkboxen er sat og send email
  if modtag <> "" then
    Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
    Mailer.FromName  = "info@mitfirma.com "
    Mailer.FromAddress= "info@mitfirma.com "
    Mailer.RemoteHost = "mailhost.localisp.net"  'samme som den du bruger i JMail
    ' Mailer.AddRecipient skal hvade to paramater og vil man kun bruger email skal det være:
    ' Mailer.AddRecipient "", "email@site.dk"
    Mailer.AddRecipient navn, email
    Mailer.Subject    = "En mail fra siden"

    'Tilføje filen her:
    Mailer.AddAttachment Sever.Mappath("dinfil.doc")
    body = "Hej" & vbCrLf & vbCrLf
    body = body & "Her et word doc." & vbCrLf
 
    body = body & vbCrLf & "Med venlig hilsen" & vbCrLf
    body = body & "Min side"
    Mailer.BodyText  = body
    if Mailer.SendMail then
    else
      Response.Write "Mail send failure. Error was " & Mailer.Response
    end if
 
    Set Mailer = Nothing
  end if
 
  Response.Redirect (Request.ServerVariables("SCRIPT_NAME")&"?mode=tak")
end if

if Request.Querystring("mode")="tak" then
  Response.Write "Tak for din henvendelse"
  Response.End
end if
%>

<html>
<body>
<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="post">
<table>
<tr><td>Navn</td><td><input type="text" name="navn"></td></tr>
<tr><td>Firma</td><td><input type="text" name="firma"></td></tr>
<tr><td>Adresse</td><td><input type="text" name="adresse"></td></tr>
<tr><td>Postnummer</td><td><input type="text" name="postnummer"></td></tr>
<tr><td>By</td><td><input type="text" name="by"></td></tr>
<tr><td>Telefon</td><td><input type="text" name="telefon"></td></tr>
<tr><td>Mobil</td><td><input type="text" name="mobil"></td></tr>
<tr><td>Email</td><td><input type="text" name="email"></td></tr>
<tr><td>Besked</td><td><textarea name="besked" cols="30" rows="10"></textarea></td></tr>
<tr><td>Modtag DOC.</td><td><input type="checkbox" name="modtag"></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" name="Send" value="Send"></td></tr>
</table>
</form>
</body>
</html>
Avatar billede gr8m8 Novice
28. januar 2004 - 13:21 #2
Tusind tak Eagle, jeg prøver at få det til at virke.
Avatar billede gr8m8 Novice
29. januar 2004 - 11:29 #3
Hej eagleeye, den formular du lavede virker rigtig fint bortset fra jeg ikke rigtig kan få den til at sende en email tilbage med det vedhæftede word.doc !
Håber du kan hjælpe mig med dette.
Avatar billede gr8m8 Novice
29. januar 2004 - 11:31 #4
Koden :

'Tjek om checkboxen er sat og send email
  if modtag <> "" then
    Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
    Mailer.FromName  = "Michael"
    Mailer.FromAddress= "min@mail.dk"
    Mailer.RemoteHost = "mail9.wannafind.dk"  'samme som den du bruger i JMail
    ' Mailer.AddRecipient skal hvade to paramater og vil man kun bruger email skal det være:
    ' Mailer.AddRecipient "", "email@site.dk"
    Mailer.AddRecipient "", "min@mail.dk"
    Mailer.Subject    = "En mail fra siden"

    'Tilføje filen her:
    Mailer.AddAttachment Sever.Mappath("kvittering.doc")
    body = "Hej" & vbCrLf & vbCrLf
    body = body & "Vi takker for deres henvendelse. Her er deres kvittering." & vbCrLf

    body = body & vbCrLf & "Med venlig hilsen" & vbCrLf
    body = body & "min@mail.dk"
    Mailer.BodyText  = body
    if Mailer.SendMail then
    else
      Response.Write "Mail send failure. Error was " & Mailer.Response
    end if

    Set Mailer = Nothing
  end if

  Response.Redirect (Request.ServerVariables("SCRIPT_NAME")&"?mode=tak")
end if
Avatar billede eagleeye Praktikant
29. januar 2004 - 17:35 #5
hvor ligger word filen i forhold til ASP koden?
Som det står her skal de to filer ligge i samme folder:

Mailer.AddAttachment Sever.Mappath("kvittering.doc")
Avatar billede gr8m8 Novice
29. januar 2004 - 18:25 #6
de ligger begge 2 i roden af /www/ mappen.
Avatar billede eagleeye Praktikant
29. januar 2004 - 18:41 #7
du kan prøve at skrive sådan her så:

Mailer.AddAttachment Sever.Mappath("/kvittering.doc")
Avatar billede gr8m8 Novice
29. januar 2004 - 18:45 #8
ok tak, det prøver jeg lige.
Avatar billede gr8m8 Novice
29. januar 2004 - 18:47 #9
Den siger at siden ikke kan vises.
Jeg modtager godt nok det der står i formularen, men der kommer ikke nogen mail retur med attachment til den email der er indtastet som afsender i formularen.
Avatar billede eagleeye Praktikant
29. januar 2004 - 18:49 #10
du får ikke en fejl kode?
Avatar billede gr8m8 Novice
29. januar 2004 - 18:59 #11
nej, den siger siden ikke kan vises. Ved ikke lige hvad for en side det er den snakker om da, det sidste den skal gøre er at vise den her :

  Response.Redirect (Request.ServerVariables("SCRIPT_NAME")&"?mode=tak")
end if

if Request.Querystring("mode")="tak" then
  Response.Write "Tak for din henvendelse"
  Response.End
end if
Avatar billede eagleeye Praktikant
29. januar 2004 - 19:14 #12
Det tror jeg ikke men du kan da prøve at fjerne den redirect..


Du skulle også gerne få en bedre fejl kode/beskrivelse ved at slå denne fra i IE:

funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"
Avatar billede gr8m8 Novice
29. januar 2004 - 19:20 #13
haha... for dævlen da. :)
Da jeg fik fjernet det fik jeg fejlen i linie 58 og der stod "secer" og ikke "server" :D Tusind tak for hjælpen eagleeye !
Jeg giver dig gerne 150 point mere :D
Avatar billede eagleeye Praktikant
29. januar 2004 - 19:23 #14
hehe ok

Nej du skal ikke give flere, det helt i orden ;)
Avatar billede gr8m8 Novice
29. januar 2004 - 19:47 #15
Lige en sidste ting hvis jeg må stjæle 1 minut mere af din tid.

Hvordan tilføjer jeg at den email adresse der skal modtage den kvitterings mail skal være den indtastet i Email feltet i formularen ?

Den her virker åbenbart ik :

'Tjek om checkboxen er sat og send email
  if modtag <> "" then
    Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
    Mailer.FromName  = "MitFirma"
    Mailer.FromAddress= "webmaster@domain.com"
    Mailer.RemoteHost = "mail9.wannafind.dk"  'samme som den du bruger i JMail
    ' Mailer.AddRecipient skal hvade to paramater og vil man kun bruger email skal det være:
    ' Mailer.AddRecipient "", "email@site.dk"
    Mailer.AddRecipient "", Request.Form("email")
    Mailer.Subject    = "Kvittering"
Avatar billede gr8m8 Novice
29. januar 2004 - 19:54 #16
hovsa, der var jeg lige hurtig nok :)
Det virker skam fint.

Tak endnu engang !
Avatar billede eagleeye Praktikant
29. januar 2004 - 19:57 #17
ok :) ja det skulle være rigtig som du har skrevet det.
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