25. maj 2004 - 14:39Der er
9 kommentarer og 1 løsning
Afsende mail samtidig med skriving til database
Er det på nogen måde muligt via Jmail at sende en mail til en bestemt email adresse samtidig med der bliver skrevet i databasen?
Eks.: En bruger skriver et indlæg i en gæstebog, og idet brugeren subimtter formen, bliver der sent en mail til administartoren om at der er kommet et indlæg.
Bare send en mail efter der er indsat i databasen.
conn.execute("insert into DinTabel(xxx, yyy, zzz osv....) values('','','' osv...)") Message.From = "Fra@adresse.dk" Message.Subject = "Gæstebog" Message.Body = "Der er nye indlæg." Message.AddRecipient "til@adresse.dk","" if not Message.Send( "Din.Mailserver.dk" ) then errTekst = "<span style=""color:red"">Der skete en fejl under afsendelse.</span>" end if
set Message = Server.CreateObject("JMail.Message") Message.From = "Fra@adresse.dk" Message.Subject = "Gæstebog" Message.Body = "Der er nye indlæg." Message.AddRecipient "til@adresse.dk","" if not Message.Send( "Din.Mailserver.dk" ) then errTekst = "<span style=""color:red"">Der skete en fejl under afsendelse.</span>" end if rs.AddNew rs("navn") = replace( replace( Request.form("navn"),"<","<"), ">", ">") rs("email") = replace( replace( Request.form("email"),"<","<"), ">", ">") rs("url") = replace( replace( Request.form("url"),"<","<"), ">", ">")
Så sender du mailen før det bliver indsat, men du kunne også bytte om på rækkefølgen, så du sender mailen efter det er indsat.
rs.AddNew rs("navn") = replace( replace( Request.form("navn"),"<","<"), ">", ">") rs("email") = replace( replace( Request.form("email"),"<","<"), ">", ">") rs("url") = replace( replace( Request.form("url"),"<","<"), ">", ">") set Message = Server.CreateObject("JMail.Message") Message.From = "Fra@adresse.dk" Message.Subject = "Gæstebog" Message.Body = "Der er nye indlæg." Message.AddRecipient "til@adresse.dk","" if not Message.Send( "Din.Mailserver.dk" ) then errTekst = "<span style=""color:red"">Der skete en fejl under afsendelse.</span>" end if
uanset hvordan du gør, giver det samme resultat.
Afsendelse af mail og indsættelse i databasen har intet med hinanden at gøre. Hvis du vil sende en mail når man indsætter i databasen skal du bare "gøre det". Der er kode som indsætter og kode som sender mail. De linjer skal bare køres. For at forvire dig endnu mere kunne koden også se sådan ud:
set Message = Server.CreateObject("JMail.Message") rs.AddNew Message.From = "Fra@adresse.dk" rs("navn") = replace( replace( Request.form("navn"),"<","<"), ">", ">") Message.Subject = "Gæstebog" rs("email") = replace( replace( Request.form("email"),"<","<"), ">", ">") Message.Body = "Der er nye indlæg." rs("url") = replace( replace( Request.form("url"),"<","<"), ">", ">") Message.AddRecipient "til@adresse.dk","" if not Message.Send( "Din.Mailserver.dk" ) then errTekst = "<span style=""color:red"">Der skete en fejl under afsendelse.</span>" end if
Nu virker det vidst... satte godt nok det her ind istedet:
Set JMail = Server.CreateObject("JMail.SMTPMail") JMail.ServerAddress = "min.server.dk" JMail.sender = "min@mail.dk" JMail.subject = "Nyt indlæg i din gæstebog" JMail.AddRecipient "min@mail.dk" JMail.Body = "Der er kommet et nyt indlæg i din gæstebog!" JMail.Priority = 3 JMail.Execute
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.