Avatar billede jens_as Nybegynder
26. august 2003 - 15:35 Der er 19 kommentarer og
2 løsninger

Automatisk nyhedsbrev.

Kære alle eksperter...

Jeg har nu haft et nyhedsbrev kørende i nogle uger og syntes jeg har fundet nogle mangler ved det.

1) Jeg ved at nede på mit arbejde kan du sende et automatisk nyhedsbrev ud uden at de selv skal gøre noget. Nyhedsbrevet bliver genereret ud fra en side (tror jeg) som hedder mail.asp og så finder serveren selv ud af sende det ud. Jeg har prøvet at eksperimenterer lidt med AddAttachment men har fundet ud af det ikke lige er mig.

Så er mit spørgsmål: Nogen som selv har prøvet eller ved hvordan jeg kan lave et script som selv sende nyhedsbrevet ud plus selv tilføjer de nyheder som er blevet sat på i løbet af ugen?

Er lidt ude på dybt vand med det ASPMail sprog så en grundig forklaring ville være dejlig...

Mvh.

/Jens

P.S. bruger Access database til alle e-mail adresserne
Avatar billede mm12010 Nybegynder
26. august 2003 - 15:42 #1
hvis det selv skal sende brevet uden bruger beder om det:
http://activedeveloper.dk/aspdigital/2002080801.asp
Avatar billede netro Nybegynder
26. august 2003 - 15:43 #2
Laver et opslag i databasen og tager nyheden med den nyeste dato. I MS SQL kan du oprette et task, der automatisk kører et script f.eks. hver mandag morgen.
Avatar billede netro Nybegynder
26. august 2003 - 15:45 #3
Ja, global.asa er også en mulighed, men det kræver så, at der kommer nye sessions for at koden vil blive afviklet.
Avatar billede jens_as Nybegynder
26. august 2003 - 15:54 #4
Men hvad gør jeg hvis jeg vil have dem med i nyhedsbrevet (altså nyhederne)?
Avatar billede jens_as Nybegynder
26. august 2003 - 17:06 #5
Altså det jeg mener er:

Hvordan skal jeg sende en mail ud med asp indhold... Hvordan kunne man for eksempel trække noget ud fra en database og så skrive det i emailen...
Avatar billede netro Nybegynder
26. august 2003 - 18:15 #6
Jeg er ikke sikker på, hvad du helt præcis vil have hjælp til.

Er det til at trække posten ud af tabellen, er det til at afsende mails'ne, eller er det til at afvikle filen med bestemt interval?
Avatar billede jens_as Nybegynder
26. august 2003 - 19:05 #7
Jamen jeg er ikke helt sikker på hvordan jeg for eksempel trækker en nyhed ud fra en database og skrive den i mailen... Det andet har jeg fundet ud af...

/Jens
Avatar billede netro Nybegynder
26. august 2003 - 19:50 #8
Lad os sige, du har en tabel med følgende kolonner:

ID          Dato          Nyhed
1        2003-08-23      Bla bla
2        2003-08-24      Bla bla

Så kan du trække den sidste nyhed ud således:

Set rs = Conn.Execute("Select Top 1 Dato, Nyhed From Tabel Order By Dato Desc")

Dato = rs("Dato")
Nyhed = rs("Nyhed")

Og så vil du typisk have en tabel med modtageres navne og mail-adresser:

ID          Bruger        Email
1          Peter      peter@hotmail.com
2          Benny      benny@hotmail.com

Herefter kan du løbe tabellen med brugerne i gennem og sende dem en mail hver med f.eks. ASPmail:

Set rs = Conn.Execute("Select Bruger, Email From Tabel")
While Not rs.EOF

  Set AspMail = Server.CreateObject("SMTPsvg.Mailer")
  AspMail.FromName = "Dit navn"
  AspMail.FromAddress = "din@mailadresse.dk"
  AspMail.AddRecipient rs("Bruger"), rs("Email")
  AspMail.Subject = "Nyhed d. " & Dato
  AspMail.BodyText = "Hej " & rs("Bruger") & "!" & vbCrlf & vbCrlf & Nyhed

  'Mailserver
  AspMail.RemoteHost = "mail.domaene.dk"

  If AspMail.SendMail Then
      Response.Write "Mail sendt til " & rs("Bruger") & "<br>"
  Else
      Response.Write "Der opstod følgende fejl: " & AspMail.Response & "<br>"
  End If

  Set AspMail = Nothing

  rs.MoveNext
Wend
Avatar billede netro Nybegynder
26. august 2003 - 19:52 #9
Avatar billede jens_as Nybegynder
26. august 2003 - 20:04 #10
netro --> gider du ikke lige forklarer hvordan du får nyhederne ind i emailen... Tor jeg er ved at fatte lidt af det ;-)....


/Jens
Avatar billede netro Nybegynder
29. august 2003 - 02:57 #11
Nu fatter jeg til gengæld ikke, hvad du siger ;)

Ind i e-mail'en? Vi henter jo alle oplysninger fra de to tabeller, som du selvfølgelig også skal have skabt. Men som jeg læser dit spørgsmål, var det ikke det, der er problemet.
Avatar billede jens_as Nybegynder
29. august 2003 - 07:26 #12
Jamen inde i " AspMail.BodyText = "Hej " & rs("Bruger") & "!" & vbCrlf & vbCrlf & Nyhed " - hva gør man der for at nyhed køre i loop?

/Jens
Avatar billede netro Nybegynder
29. august 2003 - 14:13 #13
Der skal du ikke køre noget loop. Loop'et består af hele mail-scriptet (fra While til Wend).

Eller vil du udsende flere nyheder fra tabellen i samme mail til hver bruger...?
Avatar billede jens_as Nybegynder
29. august 2003 - 16:30 #14
Ja lige præcist! Jeg skal sende omkring 10-15 nyheder ud med samme mail...

/Jens
Avatar billede netro Nybegynder
29. august 2003 - 16:54 #15
Nååh, okay :)

Med udgangspunkt i før viste tabeller, trækker vi først de 15 seneste nyheder ud og gemmer dem i variablen "Body". Derefter løber vi hver bruger i gennem og sender vedkommende nyhederne:

*******************************************************

Set rs = Conn.Execute("Select Top 15 Dato, Nyhed From Tabel Order By Dato Desc")
While Not rs.EOF
  Body = Body & vbCrlf & vbCrlf & rs("Dato") & vbCrlf & rs("Nyhed")
  rs.MoveNext
Wend

Set rs = Conn.Execute("Select Bruger, Email From Tabel")
While Not rs.EOF

  Set AspMail = Server.CreateObject("SMTPsvg.Mailer")
  AspMail.FromName = "Dit navn"
  AspMail.FromAddress = "din@mailadresse.dk"
  AspMail.AddRecipient rs("Bruger"), rs("Email")
  AspMail.Subject = "Nyhed d. " & Dato
  AspMail.BodyText = "Hej " & rs("Bruger") & "!" & Body

  'Mailserver
  AspMail.RemoteHost = "mail.domaene.dk"

  If AspMail.SendMail Then
      Response.Write "Mail sendt til " & rs("Bruger") & "<br>"
  Else
      Response.Write "Der opstod følgende fejl: " & AspMail.Response & "<br>"
  End If

  Set AspMail = Nothing

  rs.MoveNext
Wend
Avatar billede netro Nybegynder
29. august 2003 - 16:57 #16
Overskriften på mails'ne skal du også lige ændre til f.eks.:

AspMail.Subject = "De 15 seneste nyheder"
Avatar billede jens_as Nybegynder
29. august 2003 - 16:58 #17
Tjekker lige om jeg kan få det til og virke også få du point ok?!

/Jens
Avatar billede jens_as Nybegynder
29. august 2003 - 17:23 #18
Bare lige et hurtigt spørgsmål... Hvordan er det at man får den til kun at trække de første 200 tegn ud i nyhedsblokken?
Avatar billede jens_as Nybegynder
29. august 2003 - 17:44 #19
Tusind tak for hjælpen...

Piont er:

Netro = 150
mm12010 = 50
Avatar billede netro Nybegynder
29. august 2003 - 18:42 #20
Left(Nyhed, 200)
Avatar billede netro Nybegynder
29. august 2003 - 18:44 #21
Eller Left(Nyhed, netro + mm12010)

;o)
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

IT-JOB