Avatar billede kelvin Nybegynder
28. september 2004 - 22:34 Der er 20 kommentarer og
1 løsning

AspEMAIL? hvordan?

hej, jeg har nu søgt længe efter et svar på at sende email fra en hjemmeside.. jeg fandt et sted på nettet hvor der var en guide, www.html.dk og den indsatte jeg så på min side www.pagels.biz/email.asp (OBS: Nu har jeg lagt det ind som en tekst fil, så i kan se hvad jeg gør)
Men jeg vil rigtig gerne have det sådan at folk fx, kan gå ind på min side og sende en email til mig med menuerne.
Navn
Emne
tekst (og en boks)

eller noget lignende det, så min email allerede er tastet der, så de sender den automatisk til min email. Håber i forstår mit spørgsmål..

//Kelvin
Avatar billede kelvin Nybegynder
28. september 2004 - 22:36 #1
forresten jeg har webhotel hos www.unoeuro.com og de understøtter aspEmail og m.m.
Så det burde kunne kører fint.. Men jeg ved bare ikke hvordan man gør.
:) Kom med svar =) let tjente point..
Avatar billede eagleeye Praktikant
28. september 2004 - 22:43 #2
Du kan lave en side sådan her så, der er mail koden og en form man kan udfylde data i:


<%

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
Dim Mailer
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")

' Her sættes afsender navn og e-mail adresse
Mailer.FromName = "Kelvin Pagels"
Mailer.FromAddress= "Kelvin@Pagels.dk"

' Afsenders mailserver
Mailer.RemoteHost = "pop3.pagels.dk"

' Her sættes modtager navn og e-mail adresse
Mailer.AddRecipient "Modtagers navn", "pagels@gmail.com"

' Her sættes overskriften på mailen
Mailer.Subject = Request.Form("emne")

' Her sættes selve teksten til mailen
Mailer.BodyText = "Hej med dig" & VbCrLf & Request.form("navn") & " skriver dette til dig:" & vbCrLf & vbCrLf & Request.Form("besked")

' Send e-mail og skriv status
if Mailer.SendMail then
Response.Write "Mailen er afsendt..."
else
Response.Write "Der skete en fejl: " & Mailer.Response
end if

' Fjern objekt igen
Set Mailer = Nothing

Response.end
End if
%>
<html>
<body>
<table>
<form action="<%=Request.Servervariables("SCRIPT_NAME")%>" method="post">
<tr><td>Dit navn:</td><td><input type="text" name="navn"></td></tr>
<tr><td>Emne:</td><td><input type="text" name="emne"></td></tr>
<tr><td>Besked:</td><td><textarea name="besked"></textarea></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" name="Send" value="Send"></td></tr>
</form>
</table>
</body>
</html>
Avatar billede kelvin Nybegynder
28. september 2004 - 22:48 #3
hej. tak for dit svar. men hvad skal den fil hedde? Skal den deles op i to filer eller? Hvad skal den fil hedde? Jeg er ikke særlig haj til sådan noget kan du forstå :) Kelvin
Avatar billede eagleeye Praktikant
28. september 2004 - 22:51 #4
Som koden er der kan det være i en fil go du kan kalde den hvad du ønkser.

Du kan også dele det i to filer hvis du vil det. Alt ASP koden i en fil og alt HTML koden med formen i en anden fil. Så skal du hare rette denne linje:
<form action="<%=Request.Servervariables("SCRIPT_NAME")%>" method="post">
Så der står nanvet på filen hvor ASP koden ligger i:
<form action="navnet_på_filen.asp" method="post">
Avatar billede kelvin Nybegynder
29. september 2004 - 15:24 #5
hej eagleeye.. hmm har lige et spørgsmål!
Jeg har prøvet at indsætte dette i email.asp fil, når jeg starter den op på serveren, kommer de 3 bokse op, med navn, emne og besked. Men den vil ikke sende den? "Der er problemer med den side, du prøver at åbne, og den kan ikke vises." kommer den med. Hvad er problemet?

//Kelvin
Avatar billede eagleeye Praktikant
29. september 2004 - 16:57 #6
Der kommer denne fejl:

Active Server Pages error 'ASP 0113'

Script timed out

/email.asp

The maximum amount of time for a script to execute was exceeded. You can change this limit by specifying a new value for the property Server.ScriptTimeout or by changing the value in the IIS administration tools.


Det tyder på den fejler i at sende mailen, så prøv at tjekke mail server adressen er rigtigt.
Avatar billede kelvin Nybegynder
29. september 2004 - 17:10 #7
hej eagleeye. Hvis du svarer på dette får du dine point..
Hvis nu jeg gerne vil have at den nu skal sende 2 mails af den samme? Eller måske 4 mails? Hvad gør jeg så? Kan man bruge nogle løkker til det?

Eller hvad nu hvis jeg vil have at fx. på min hjemmeside, at folk kan sende email til mig, så de bare indsætter deres navn og email og emne, så kommer den direkte fra dem, og så der ikke står at det er fra mig? Men fra dem?

Kelvin
Avatar billede eagleeye Praktikant
29. september 2004 - 17:23 #8
Afsenderen sættes her:

Mailer.FromName = "Kelvin Pagels"
Mailer.FromAddress= "Kelvin@Pagels.dk"


Så hvis det skal være det navn og email som man indtaster, så kan de se sådan her ud:

Mailer.FromName = request.form("navn")
Mailer.FromAddress= Request.form("email")


Så skal du bare lige havde et nyt felt på formen hvor email adressen er i :)


Flere modtagere. En modtager tilføjes sådan her:
Mailer.AddRecipient "Modtagers navn", "pagels@gmail.com"

Skal du havde to eller flere kan det gøres ved enten at skrive hver modtager i en linje for sig:
Mailer.AddRecipient "Modtagers A", "A@gmail.com"
Mailer.AddRecipient "Modtagers B", "B@gmail.com"
Mailer.AddRecipient "Modtagers C", "C@gmail.com"


Det kan også gøres i et loop hvis eksempelvis du henter email og navet på modtageren i en database:
do while not rs.EOF
  Mailer.AddRecipient rs("navn"), rs("email")
  rs.movenext
loop


Når du sender til flere kan det være en god ide at bruge .AddBCC i stedet for .AddRecipient:

Mailer.AddBCC "navn", "navn@domæne.dk"

Så kan modtagerne ikke se mailen er sendt til flere end dem selv.
Avatar billede kelvin Nybegynder
29. september 2004 - 17:33 #9
ved måske godt jeg er besværlig :) Men jeg er virkelig ikke så god til sådan noget, fik det til at virke det du sagde.. Men jeg mener fx. hvis nu jeg vil lave noget sjov med min storebror og sende ham 100 mails fx? Han sendte 1000 til mig engang, for at lave lidt sjov med mig :) Men ved du det?
Kelvin
Avatar billede eagleeye Praktikant
29. september 2004 - 17:35 #10
Ja hver gang du kalder  Mailer.SendMail  sender den en mail så du kan loope på den

for i = 1 to 100
  Mailer.SendMail
next
Avatar billede kelvin Nybegynder
29. september 2004 - 17:42 #11
Så er det mit sidste spørgsmål :D
ok, hvor skal jeg indsætte det for i = 1 to 100
Mailer.sendmail
next
?
if Mailer.SendMail then
Response.Write "Mailen er afsendt..."
else
imellem der?

Kelvin
Avatar billede eagleeye Praktikant
29. september 2004 - 17:45 #12
Det kan du gøre sådan her:


' Send e-mail og skriv status
for i = 1 to 100
if Mailer.SendMail then
Response.Write "Mailen er afsendt...<br>"
else
Response.Write "Der skete en fejl: " & Mailer.Response
end if
next
Avatar billede kelvin Nybegynder
29. september 2004 - 17:49 #13
Tak skal du have, tak for hjælpen, den satte jeg pris på. Håber 50 point er nok ;)
Ha det godt..

Hilsen Kelvin
Avatar billede kelvin Nybegynder
29. september 2004 - 18:04 #14
eagleeye, lige en ting, når jeg prøver at sende 100, så siger den at max limit er nået? hvorfor?
Mailen er afsendt...
Mailen er afsendt...
Mailen er afsendt...
Mailen er afsendt...
Mailen er afsendt...
Mailen er afsendt...

Active Server Pages error 'ASP 0113'

Script timed out

/email1.asp

The maximum amount of time for a script to execute was exceeded. You can change this limit by specifying a new value for the property Server.ScriptTimeout or by changing the value in the IIS administration tools.
------
ved du hvad fejlen er?

kelvin
Avatar billede eagleeye Praktikant
29. september 2004 - 18:07 #15
Den er åbenbart lidt til om at sende dem, så prøv at sætte ScriptTimeoutet op ved at tilføje denne i toppen af filen


Server.ScriptTimeout = 300 ' i sekunder = 5 minutter.
Avatar billede kelvin Nybegynder
29. september 2004 - 18:55 #16
hej igen, prøvede at sende 100, det gik fint. Men hvis jeg nu tager flere end 100, så siger den fejl? Nu vil jeg kun bruge det til at lave sjov med min broder, jeg sagde at når jeg fandt ud af det ville han få det igen :)

Kelvin
Avatar billede eagleeye Praktikant
29. september 2004 - 19:23 #17
Hvilken fejl?
Avatar billede kelvin Nybegynder
29. september 2004 - 19:26 #18
den siger bare at der er sket en fejl, eller siden ikke vil vises. Men hvis jeg sætter den til 1 to 100 virker den fint? men kan man ikke med flere?

Kelvin
Avatar billede eagleeye Praktikant
29. september 2004 - 19:29 #19
Umiddelbart tror jeg ikke der en max grænse, men det kan da godt være der noget som stopper den.

Du kan evt prøve at sætte scripttimeout højre op:
Server.ScriptTimeout = 1000

Du skulle 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 kelvin Nybegynder
29. september 2004 - 19:47 #20
Ok nu når jeg har dig her, ville jeg blive meget glad hvis du gad at hjælpe mig med dette her. En dag kom jeg til at hive proceslinien helt op, så når jeg skulle have den ned, så ville den ikke, så kom jeg vidst til at gøre et elelr andet mærkeligt. og nu hvergang jeg fx. vil have et program maximeret, så fylder den hele skærmen. se her http://www.pagels.biz/skrivebord.jpg virkelig belastende.
Måske du har en ide om hvad fejlen er?

Kelvin
Avatar billede eagleeye Praktikant
29. september 2004 - 20:05 #21
Nej det ved jeg ikke.
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