Hej Jeg har fundet følgende kode her på eksperten, som skulle kunne bruges til at tage en backup af en database på en server automatisk. Problemet er bare at jeg absolut må betegnes som en novice indenfor asp, så jeg kunne tænke mig at høre om der en der kan/vil hjælpe med at få det til at virke? Det er en accessDB der skla tages backup af og jeg kender den fysiske placering. Mail er CDONTS, og istedet for en gang i døgnet kunne jeg tænke mig det blev en gang om ugen der sendtes en backup til min mail. Hvordan kan jeg teste det? På forhånd tak Scriptet: <% Dim fso, f, filespec Set fso = CreateObject("Scripting.FileSystemObject") filespec = ("MinFil")
Set f = fso.OpenTextFile(filespec,1)
TimePast = Round(f.ReadLine) TimeNow = Day(Date)
If TimePast <> TimeNow Then Set f = fso.OpenTextFile(filespec,2) f.WriteLine (TimeNow) Makeup = "Yes" End If
f.Close
If Makeup = "Yes" Then
Dim Mailer Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = "Mig" Mailer.FromAddress= "blabla@blabla.dk" Mailer.RemoteHost = "mailhub.registeredhost.com" Mailer.AddRecipient "Mig", "bla@bla.dk"
Mailer.AddAttachment "x:\xx\...mdb"
Mailer.Subject = "Backup af DB (" & Day(Date) & "/" & Month(Date) & ")" Mailer.BodyText = "Godmorgen!" & VbCrLf & "Her er en database!"
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Der er flere ting i det 1) Den laver som sådan ikke en backup - den sender dig en mail med databasen, hvorefter du selv skal gemme den et sted 2) Den kører ikke automatisk. Den kræver at du går ind på siden før den gør noget (jeg ved ikke hvordan man kører noget automatisk i asp)
Ret filespec = ("MinFil") til filespec = Server.Mappath("/MinFil.txt") og sør for at samme sted som denne asp fil ligge at have en fil liggende som hedder "MinFil.txt" .- sør også for at skrive noget i filen første gang fx "123" for hvis den er tom første gang får du fejl!
Hvis du skal have tjekket for en uge..så skal der vel tjekkes på om dato diffenrencen er større end 7 altså: ----- <% Dim fso, f, filespec Set fso = CreateObject("Scripting.FileSystemObject") filespec = Server.Mappath("/MinFil.txt") Set f = fso.OpenTextFile(filespec,1)
Så er der det med mailen - der skal du rette felterne så de passer med dine info --- If Makeup = "Yes" Then Dim Mailer Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = "DIT NAVN HER" Mailer.FromAddress= "DIN AFSENDER MAIL HER" Mailer.RemoteHost = "DIN SMTP SERVER" Mailer.AddRecipient "NAVN PÅ MODTAGER", "MODTAGERS EMAIL"
Mailer.AddAttachment "STIEN TIL DIN DATABASE - ABSOLUTTE STI"
Mailer.Subject = "MAILENS EMNE" Mailer.BodyText = "TEKST INDHOLD I MAILEN"
Det hele gemmer du i en asp fil som du åbner engang om ugen...det er jo ikke så automatisk Evt kan du putte det hele ind i en Sub -- Sub backup //alt ovenstående her End Sub -- Hver gang nogen så sætter noget ind i databasen, sletter eller ændrer noget i databasen Så kald "backup" Hvis der så er gået en uge - så sender den dig en mail Hvis ikke der er gået en uge - så sender den dig ikke en Hvis der er gået en uge og ingen har lavet rettelser i databasen - så sender den heller ingen mail Det er vist så automatisk det kan blive :o) --- Hvis du har flere databaser kunne du lave kaldet dynamsik -- Sub backup(databasenavn) //alt ovenstående her End Sub --
Hej tak for alle kommentarerne. Jeg har prøvet som du foreslog men får det ikke til at virke.... Kan det være fordi den server jeg er på bruger CDONTS eller ASP mail? Jeg får en siden kan ikke vises når jeg kalder www.mitdomæne.dk/backup.asp - ingen mail :-( Har lagt en txt fil i roden kaldet MinFil med lidt indhold. Backup.asp ligger også i roden. scriptet kalder jeg backup.asp(genialt ikke?) :-)og det ser sådan ud:
<% Dim fso, f, filespec Set fso = CreateObject("Scripting.FileSystemObject") filespec = Server.Mappath("/MinFil.txt") Set f = fso.OpenTextFile(filespec,1)
Jeg gætter på de nederste oplysninger kun er skjult herinde...altså mail mm ;o) Jo ellers smart nok Så vidt jeg ved er : Server.CreateObject("SMTPsvg.Mailer") en del af AspMail Så det kræver selvfølgelig at du har AspMail på din server Men men men. Siden du ingen fejl får så vil jeg da næsten tro at du har AspMail! Hvem har du hotel hos?. De må have en support side hvor der står hvordan man sender mail hos dem gennem aspmail hvis de har det Det er muligt at de kræver en bestemt FromAddress fx pga undgå spam osv....
Hej, Følgende står på deres supportside. Der er aspmail, men det kan jo være de ikke vil acceptere tdc smtp? Jeg prøver lige deres egen. Er der en måde og sikre at det er den korrekte sti? Og ja - det er kun her jeg har nogle "mystiske" mailadresser på :-)
ASPMail 4.x -------------------------------------------------------------------------------- AspMail tillader dig at sende mails via standard SMTP protokol fra et et hvilket som helst program der kan bruge ActiveX/OLE komponenter. Egenskaber incl.: SMTP (sending) Messages Multiple File Attachments File attachments support MIME and UUEncoding US Ascii and ISO-8859-1 character sets PGP Subject line encoding for 8bit message subjects Redundant SMTP servers (If the primary SMTP server is down, the secondary server is used) Special Header Support (Standard X-Priority headers, MS Mail (including Exchange) priority headers, Urgent header, ConfirmReading and ReturnReceipt Headers) Multiple concurrent users (Tested with 15 concurrent connections)
Simple Mail Example Using the component is as simple as
Creating the object Setting a few properties Calling the SendMail method The following code demonstrates how to use AspMail from VBScript. In this example Joe from Joe’s Widgets wishes to send an email to John Smith. Joe’s mail server is located at mailhost.localisp.net.
Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = "Joe’s Widgets Corp." Mailer.FromAddress= "Joe@somehost.com" Mailer.RemoteHost = "mailhost.localisp.net" Mailer.AddRecipient "John Smith", "jsmith@anotherhostname.com" Mailer.Subject = "Great SMTP Product!" Mailer.BodyText = "Dear Stephen" & VbCrLf & "Your widgets order has been processed!" if Mailer.SendMail then Response.Write "Mail sent..." else Response.Write "Mail send failure. Error was " & Mailer.Response end if
By testing the result of the SendMail method we can determine if the mailing process was successful or not.
AHA Du mangler linjen Mailer.SendMail Som sikkert sjovt nok er den linje som sender mailen ;o) Put evt hele if sætningen med i din kode sådan her --- <% Dim fso, f, filespec Set fso = CreateObject("Scripting.FileSystemObject") filespec = Server.Mappath("/MinFil.txt") Set f = fso.OpenTextFile(filespec,1)
Mailer.Subject = "test" Mailer.BodyText = "bla bla bla" if Mailer.SendMail then Response.Write "Mail sent..." else Response.Write "Mail send failure. Error was " & Mailer.Response end if
Hej, Undskyld, men det blev til en forglemmelse da jeg ikke har fået det til at virke. Jeg opgav, men vil gerne have det til at funke, men hvordan kommer vi videre? Håber du stadig har mod på at hjælpe På forhånd tak Mvh
ok jeg kan ikke huske så meget om det, og hvor situationen er Du kan evt læse min artikkel om global.asa http://www.eksperten.dk/artikler/752 (tænk at lave reklame for det ;o) --- global.asa indeholder metoder som køres på events Hvis du ønsker den skal sende dig databasen til din mail cirka en gang om ugen så kan du gøre noget ala det her i din global asa --- Sub Application_OnStart Application("dbsti") = "d:\vblalba\din_sti_til_databasen\db.mdb" Application("sidstOpdateret") = Now() End Sub
Sub Session_OnStart if DateDiff("d",Application("sidstOpdateret"),Now()) >= 7 then //send en mail med databasen Application.Lock Application("sidstOpdateret") = Now() Application.UnLock end if End Sub
på den måde vil den hver gang en bruger besøger din side teste om der er gået en uge Hvis der mindst er gået 7 dage så sender den en mail med databasen
alt i alt ----- Sub Application_OnStart Application("dbsti") = "d:\vblalba\din_sti_til_databasen\db.mdb" Application("sidstOpdateret") = Now() End Sub
Sub Session_OnStart if DateDiff("d",Application("sidstOpdateret"),Now()) >= 7 then Dim Mailer Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = "mitnavn" Mailer.FromAddress= "mitnavn@mail.dk" Mailer.RemoteHost = "smtp.mail.dk" Mailer.AddRecipient "mitnavn", "modtager@mail.dk" Mailer.AddAttachment Application("dbsti") Mailer.Subject = "test" Mailer.BodyText = "bla bla bla" Mailer.SendMail Set Mailer = Nothing Application.Lock Application("sidstOpdateret") = Now() Application.UnLock end if End Sub
Det er en løsning til at få den til at sende den "rimelig automatisk cirka hver 7dag" Men fik du prøvet Mailer.SendMail som var det sidste jeg foreslog i sin tid? For hvis den slet ikke sender mailen så skulle du måske prøve at lave en asp side bare som test, som sender en test mail uden attachment og en som sender med attachment Bare for at se om det er det som fejler :o)
Hej Sorry, men jeg kan ikke få det til at virke. Hverken med global.asa eller som backup.asp.... Kan du se nogle fejl? global.asa Sub Application_OnStart Application("dbsti") = "d:\sites\mitdomæne.dk\database\mindb.mdb" Application("sidstOpdateret") = Now() End Sub
Sub Session_OnStart if DateDiff("d",Application("sidstOpdateret"),Now()) >= 7 then Dim Mailer Set Mailer = Server.CreateObject("SMTPsvg.Mailer") Mailer.FromName = "minmail" Mailer.FromAddress= "minmail@minmail.dk" Mailer.RemoteHost = "smtp.mail.dk" Mailer.AddRecipient "mitnavn", "minmail@minmail.dk" 'Mailer.AddAttachment Application("dbsti") Mailer.Subject = "test" Mailer.BodyText = "bla bla bla" Mailer.SendMail Set Mailer = Nothing Application.Lock Application("sidstOpdateret") = Now() Application.UnLock end if End Sub Eller backup.asp <html> <head> <title>Test af backup</title> </head>
<body>
<% Dim fso, f, filespec Set fso = CreateObject("Scripting.FileSystemObject") filespec = Server.Mappath("/MinFil.txt") Set f = fso.OpenTextFile(filespec,1)
Mailer.Subject = "test" Mailer.BodyText = "bla bla bla" if Mailer.SendMail then Response.Write "Mail sent..." else Response.Write "Mail send failure. Error was " & Mailer.Response end if
Set Mailer = Nothing End If
%>
</body> </html>
Det er et ASP hotel.....:-) Stien skulle være korrekt og ja jeg kan ikke komme på mere.... mvh
Det vil sige at du kan ikke sende en mail Hvilken udbyder har du? Måske har de en anden komponent
Synes godt om
Ny brugerNybegynder
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.