04. april 2007 - 00:23
Der er
11 kommentarer og 1 løsning
JMail sender dobbelt
Dette script: JMail.ServerAddress = "localhost" JMail.Sender = "Denne_mail_kan_ikke_besvares@mydomain.dk" JMail.ReplyTo = "Denne_mail_kan_ikke_besvares@mydomain.dk" JMail.Subject = "xxxxxxxxxxxxxx" JMail.AddRecipient Trim(Request.Form("email")) JMail.AddRecipientBCC "admin@mydomain" sender 2 mails til brugeren med den samme besked. Hvor hopper kæden af? Den burde kun sende én e-mail .... så vidt jeg kan se.
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
04. april 2007 - 08:29
#1
Du har ikke et loop der laver noget ged, altså noget for next eller lign.? Jeg har tidligere været ude for, at min Outlook henter dobbelt af nogle mails, det kan ikke evt. være en Outlook fejl? /Goose
04. april 2007 - 17:17
#2
Hvordan ser delen ud hvor du sender mailen... det du har vist definere kun mailen...
05. april 2007 - 10:03
#3
Hej drenge! :) Haft ikke haft tid til at være her, sorry :) goose: Nej, der er hverken loop eller fejl i opsætningen af MS Outlook. Jeg lægger scriptet, så du kan se det hele. ellebaek: Det er rigtigt, jeg dimensionerer kun afsender, serveradresse, modtager, bcc etc. i det ovenstående. Lægger hele scriptet: Set JMail = Server.CreateObject("JMail.SMTPMail") JMail.ServerAddress = "localhost" JMail.Sender = "Denne_mail_kan_ikke_besvares@mydomain.dk" JMail.ReplyTo = "Denne_mail_kan_ikke_besvares@mydomain.dk" JMail.Subject = "Du er oprettet som bruger af mydomain.dk" JMail.AddRecipient Trim(Request.Form("email")) JMail.AddRecipientBCC "admin@mydomain.dk" JMail.Body = _ "Hej " & Trim(Request.Form("firstname")) & "!" & vbNewLine & vbNewLine & _ "..................................................." & vbNewLine & vbNewLine & _ "..................................................." & vbNewLine & vbNewLine & _ "..................................................." JMail.Execute Jeg har en frygtelig mistanke om, at der er noget rod i opsætningerne på serveren hos min host. Jeg skiftede til ConCor for lidt over 2 år siden.
05. april 2007 - 11:39
#4
Det er ikke fordi du laver noget i stilen af: if not JMail.sendMail() then response.write "Der skete en fejl" end if eller tilsvarende, for så vil den sende 2 gange....
05. april 2007 - 12:09
#5
Hmm? I umiddelbar forlængelse har jeg dette: Dim Dato Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time() If JMail.Execute = True Then Conn.Execute("INSERT INTO myTable (username, pass, firstname, middlename, lastname, email, created, lastIP) VALUES (" & _ "'" & Trim(SQLEncode(Request.Form("username"))) & "', " & _ "'" & Trim(SQLEncode(Request.Form("password"))) & "', " & _ "'" & Trim(SQLEncode(Request.Form("firstname"))) & "', " & _ "'" & Trim(SQLEncode(Request.Form("middlename"))) & "', " & _ "'" & Trim(SQLEncode(Request.Form("lastname"))) & "', " & _ "'" & Trim(SQLEncode(Request.Form("email"))) & "', " & _ "'" & Dato & "', " & _ "'" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "')") Conn.Close Else Conn.Close Response.Redirect "/createuser.asp?msg=E-mail+med+brugeroplysninger+kunne+ikke+sendes+til+e-mailadressen,+og+brugeren+kunne+derfor+heller+ikke+oprettes.+Kig+efter+om+den+indtastede+e-mailadresse+er+korrekt,+og+prøv+igen." End If Set JMail = Nothing Response.Redirect "/createuser.asp?msg=Brugeren+er+blevet+oprettet.+Den+pågældende+bruger+vil+inden+for+kort+tid+modtage+en+e-mail+med+brugeroplysningerne,+som+skal+bruge+første+gang+der+logges+ind."
05. april 2007 - 12:47
#6
Så er det der den ligger.... Så skal du slette linien første gang du har din JMail.execute.. Så burde det spille for dig ;-)
05. april 2007 - 12:48
#7
problemet ligger i den her linie: If JMail.Execute = True Then den sender mailen for dig igen, så hvis du allerede har haft: JMail.execute, så sender du den 2 gange...
05. april 2007 - 13:28
#8
Som jeg ser det, tjekkes der for, om JMail er ekseveret. Hvis det er tilfældet, skal variablerne fra formularfelterne indsættes i DB. Hvordan kan man ellers lave det? Jeg vil gerne have, at administratoren får en besked, hvis der er noget galt: Response.Redirect "/createuser.asp?msg=E-mail+med+brugeroplysninger+kunne+ikke+sendes......... eller Response.Redirect "/createuser.asp?msg=Brugeren+er+blevet+oprettet.+.............
05. april 2007 - 13:28
#9
Jeg prøver lige. Hvis det ikke virker, vender jeg lige tilbage :)
05. april 2007 - 13:33
#10
Ok, det var sq det! :) Jeg kan godt tjekke på e-mailadressen på en anden måde, så smid lige et svar, ellebaek :)
05. april 2007 - 14:03
#11
Der er et svar her... men det den helt præcis gør er at den tjekker om JMail.Execute returnerer True, altså at den ikke har fået en fejl fra serveren. Så du kan stadig sagtens bruge if JMail.execute = true, men hvis du benytter den, så skal du ikke have JMail.execute til at starte med... for så sender du 2 gange ;-) Så det skal se ud som noget i stilen af: Set JMail = Server.CreateObject("JMail.SMTPMail") JMail.ServerAddress = "localhost" JMail.Sender = "Denne_mail_kan_ikke_besvares@mydomain.dk" JMail.ReplyTo = "Denne_mail_kan_ikke_besvares@mydomain.dk" JMail.Subject = "Du er oprettet som bruger af mydomain.dk" JMail.AddRecipient Trim(Request.Form("email")) JMail.AddRecipientBCC "admin@mydomain.dk" JMail.Body = _ "Hej " & Trim(Request.Form("firstname")) & "!" & vbNewLine & vbNewLine & _ "..................................................." & vbNewLine & vbNewLine & _ "..................................................." & vbNewLine & vbNewLine & _ "..................................................." Dim Dato Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time() If JMail.Execute = True Then Conn.Execute("INSERT INTO myTable (username, pass, firstname, middlename, lastname, email, created, lastIP) VALUES (" & _ "'" & Trim(SQLEncode(Request.Form("username"))) & "', " & _ "'" & Trim(SQLEncode(Request.Form("password"))) & "', " & _ "'" & Trim(SQLEncode(Request.Form("firstname"))) & "', " & _ "'" & Trim(SQLEncode(Request.Form("middlename"))) & "', " & _ "'" & Trim(SQLEncode(Request.Form("lastname"))) & "', " & _ "'" & Trim(SQLEncode(Request.Form("email"))) & "', " & _ "'" & Dato & "', " & _ "'" & SQLEncode(Request.ServerVariables("REMOTE_ADDR")) & "')") Conn.Close Else Conn.Close Response.Redirect "/createuser.asp?msg=E-mail+med+brugeroplysninger+kunne+ikke+sendes+til+e-mailadressen,+og+brugeren+kunne+derfor+heller+ikke+oprettes.+Kig+efter+om+den+indtastede+e-mailadresse+er+korrekt,+og+prøv+igen." End If Set JMail = Nothing Response.Redirect "/createuser.asp?msg=Brugeren+er+blevet+oprettet.+Den+pågældende+bruger+vil+inden+for+kort+tid+modtage+en+e-mail+med+brugeroplysningerne,+som+skal+bruge+første+gang+der+logges+ind."
05. april 2007 - 14:19
#12
Fedest, jeg prøver :) Tak for hjælpen, også for dit input, goose :)
Kurser inden for grundlæggende programmering