Fejlside, der skal sende mail afsted automatisk
Hej!Er der nogen, der gider kigge på følgende kode?
Jeg skal lave en side, som skal fremvise en fejltekst.
Deruodver skal der ske følgende:
Når en bruger ser denne fejlside, så skal der sendes nogle mails afsted automatisk, såfremt der ikke er blevet nogen sendt afsted de sidste 12 timer.
I filen "lastSentMail.txt" er det angivet, hvornår der sidst blev sendt mail afsted.
Derfor skal denne fil først kigges efter og sammenlignes med nuværende dato og klokkeslæt.
Er der ikke sendt nogen mail afsted indenfor de sidste 12 timer, så skal mail-adr. først findes:
Mail-adresserne findes i filen "mailadr.conf" og indholdet af denne ser således ud:
Mailadresser
test@test.dk
test2@test2.dk
test3@test3.dk
Herefter sendes mailen afsted og der skrives til filen med angivelse af, hvornår mailen blev sendt afsted.
Til sidst er der så koden på fejlsiden:
<%
'Variabler
Dim objFS
Dim objFile
Dim dtmTimestamp
Dim strMappedFile
'Sti til den tekstfil, der indeholder info om hvornår sidste mail er sendt
strMappedFile = Server.MapPath("/lastSentMail.txt")
Set objFS = Server.CreateObject("Scripting.FilesystemObject")
'Hvis filen eksisterer
If objFS.FileExists(strMappedFile) Then
Set objFile = objFS.OpenTextFile(strMappedFile)
'Så aflæs, hvornår sidste mail er sendt
dtmTimestamp = objFile.ReadLine
objFile.Close
Set objFile = Nothing
'Hvis det er over 12 timer siden, mailen blev sendt
If DateDiff("h", dtmTimestamp, Now) > 12 Then
'Send mailen
Call sendMail()
'Skriv nuv. dato + klokkeslæt til filen
Call WriteFile(objFS, strMappedFile)
End If
'Ellers Hvis filen ikke eksisterer
Else
'Send mailen
if(Call sendMail()) = true
'Skriv nuv. dato + klokkeslæt til filen
Call WriteFile(objFS, strMappedFile)
End If
Set objFS = Nothing
%>
Vi beklager fejlen bla-bla-bla
<%
Sub sendMail
Dim mailAdrArray
Set mailAdrArray = getMailAdr
Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.FromName = "Fejlside"
Mailer.FromAddress= "korrekt@email.adr"
Mailer.RemoteHost = "mail-test.test.dk"
'Loop, hvor der sendes en mail til hver mail-adr.
For i = LBound(mailAdrArray) To UBound(mailAdrArray)
Mailer.AddRecipient mailAdrArray(i)
Next
Mailer.Subject = "Fejltekst-emne"
Mailer.BodyText = "Her er fejl" & VbCrLf & "Her står fejlteksten"
If Mailer.SendMail Then
return true
Else
return false
End If
Set Mailer = Nothing
'Send mail
Loop
End Sub
Sub getMailAdr
'Hent mail-adr. i CONF-fil
Dim objFS
Dim objFile
Dim mailAdrFile
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
mailAdrFile = Server.Mappath("mailadr.conf")
Set objFile = objFSO.OpenTextFile(mailAdrFile,1)
'Læs linie for linie indtil slutningen af filen
Do While not objFile.AtEndOfStream
'Hvis filen som det første ord indeholder Mailadresser
If Left(objFile.ReadLine, 12) = "Mailadresser" Then
'Hent mailadresserne én for én
mailAdr = split(objFile.ReadLine, ";")
End If
Set objFS = Nothing
objFile.close
Loop
End Sub
Sub WriteFile(byRef objFS, byVal strMappedFile)
Dim objFile
Set objFile = objFS.CreateTextFile(strMappedFile)
objFile.WriteLine(Now)
objFile.Close
Set objFile = Nothing
End Sub
%>
Håber, I kan finde hoved og hale i min kode!!!
NB: Hvordan er det nu med global.asa?
Er det noget med, at der skal placeres en global.asa for hvert site - min side skal hostes på et web-hotel, der understøtter ASP - mon det er nødvendigt at skrive min egen global.asa, når der ikke skal "ske" noget i den alligevel?
