Vbscript probleme avec la date

bobies1 Messages postés 1 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 26 septembre 2008 - 26 sept. 2008 à 16:37
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 29 sept. 2008 à 13:14
Salut à tous

Le but de ce script est de récupérer un fichier log d'un backup pour l'envoyer par email pour ne pas devoir se connecter toujours au serveur pour vérifier.

Sous vbscript , j'ai un deux soucis , je n'arrive pas à introduire la date d'hier dans le contenu de mon mail.
Et je souhaiterai aussi comparer la date du fichier log d'hier avec celui d'aujourd hui , pourquoi ,
 
pour m'assurer que le script qui lance le  backup a bien creer un nouveau log.
et pour envoyer un message different si celui ci n' a pas été créer . ex : le bakup d'hier n'a pu être lancé.

Voila le code ci-dessous , pour info l'envoie du mail fonctionne.

'-------------------------
'Declaration des variables
'-------------------------
Dim fsofile
Dim log
Dim tblfile(1)
const chemfsofile = "d:\Backup_CRM\efficy.log"


'-------------------------
'Initiations des variables
'-------------------------


With CreateObject("CDO.Message")
    Set fsofile = CreatedObject("Scripting.FileSystemObject")
    set log = fsofile.getfile(chemfsofile)
        
'--------
'code
'--------


  .From=[mailto:toto@company.be toto@company.be]
  .To=[mailto:server@company.be server@company.be]
  .Subject="Efficy backup"
  .TextBody="Bonjour à tous,"  & vbcrlf _
    & "Vous trouverez en attachement du présent mail le fichier de backup du: "  & vbcrlf _
                  &  day(log.datelastmodified) & "/" month(log.datelastmodified)  & vbctrl_  
                  & "Merci " & vbcrlf _
    & "        Le serveur Mail "


  .AddAttachment("d:\Backup_CRM\efficy.log")
  .Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  .Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") ="Mail"
  .Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
  .Configuration.Fields.Update
   On Error Resume Next
   .Send


         If Err Then MsgBox "Le message n'a pas pu être expédié."
            On Error GoTo 0
End With

1 réponse

cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
29 sept. 2008 à 13:14
 Bonjour,

Il suffit d'utiliser la fonction DateDiff.

Exemple:

Const cstMyFile = "D:\Backup_CRM\efficy.log"
Const cstMailTo = "server@company.be" 
Const cstMailFrom = "toto@company.be"
Const cdoSmartHost = "AddressSmtpServer"
Const cdoSendUsingPort = 2

Dim strDateFile
strDateFile = ShowFileAccessInfo(cstMyFile)

If DateDiff("d", Now, strDateFile) = -1 Then
   SendMail "Successful backup " & strDateFile,Left(strDateFile,5)
Else
   SendMail "Not successful backup " & strDateFile,Left(strDateFile,5)
End If

Function ShowFileAccessInfo()
    Dim objFso
    Set objFso = CreateObject("Scripting.FileSystemObject")
    ShowFileAccessInfo = objFso.GetFile(cstMyFile).DateLastModified
    Set objFso = Nothing
End Function

Function SendMail(ArgSubject,ArgTextBody)
    Dim iMsg, iConf
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = iMsg.Configuration
    With iConf.Fields
         .item("http://schemas.microsoft.com/cdo/configuration/sendusing") = cdoSendUsingPort
         .item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = cdoSmartHost
         .item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
         .Update
    End With
    With iMsg
         .To = cstMailTo
         .From = cstMailFrom
         .Subject = ArgSubject
         .TextBody = ArgTextBody
         .AddAttachment(cstMyFile)
         .Send
    End With
    Set iMsg = Nothing
    Set iConf = Nothing
End Function

----------
jean-marc
0
Rejoignez-nous