tompouss Petit chat | Bonjour,
j'ai un Probleme-à-la-con avec un script: le retour à la ligne est foireux
c'est pas très joli quand je reçois un mail
le script en question:
Code :
- 'Ce script permet de parser un log robocopy pour detecter les erreurs de copies et d'envoyer le log par mail avec une alerte
- Dim txtSMTPServer, txtPort, txtTo, txtFrom, txtSubject, txtBodyOk, txtBodyFailure, txtLog, strValue, iTotal, iPos, strText
- '''''' A personnaliser ''''''''''''''''''''''''''''
- txtSMTPServer = "127.0.0.1"
- txtPort = 24
- txtTo = "tbr@*****.be"
- txtFrom = "help@*******.be"
- txtSubject = "*****SQL backup status"
- txtBodyOk = "Your Robocopy Backup Job was successfully completed - attached file has details. "
- txtBodyFailure = "Your Robocopy Backup Job has completed with one or more errors - attached file has details."
- txtLog = "C:\***********\robocopy\SQLBACKUPS.txt" 'chemin d'acces vers le log
- txtErrorLevel = "C:\********\robocopy\errorlevelsql.txt"
-
- 'gestion des erreurs robocopy
- ' strText = GetFile(txtLog)
- ' iPos = 1
- ' Do While iPos <= Len(strText)
- ' If InStr(iPos, UCase(strText), "0X00000" ) > 0 Then
- ' iTotal = iTotal + 1
- ' iPos = InStr(iPos, UCase(strText), "0X00000" )_
- ' + Len("0X00000" )
- ' Else
- ' Exit Do
- ' End If
- 'Loop
- strErrorlevel = GetFile(txtErrorLevel)
- '-- --
-
- 'preparation du mail
-
- Set sendmail = CreateObject("CDO.Message" )
- 'sendusing permet d'expliciter la facon d'envoyer le mail
- ' la valeur 2 utilise un client pour l'envoi du mail, il faut donc qu'il y en ai 1 d'installé et configuré
- 'la valeur 1 utilise le service smtp du server local (ou d'un server distant)
- 'http://msdn.microsoft.com/en-us/library/exchange/ms873037%28v=exchg.65%29.aspx
- sendmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing" ) = 1
- sendmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver" ) = txtSMTPServer
- sendmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport" ) = txtPort
- sendmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendemailaddress" ) = txtFrom
- sendmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate" ) = 0
- sendmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername" ) = "my@gmail.com"
- sendmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword" ) = "password"
- sendmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl" ) = false
-
- sendmail.Configuration.Fields.Update
-
- sendmail.From = txtFrom
- sendmail.To = txtTo
- sendmail.Subject = txtSubject
-
- If strErrorlevel <= 3 Then
- sendmail.Textbody = txtBodyOk & errorMessage(strErrorlevel) & vbNewline & "( Error level " & strErrorlevel &" )"
- else
- sendmail.Textbody = txtBodyFailure & errorMessage(strErrorlevel) & vbNewline & "( Error level " & strErrorlevel &" )"
- End If
- 'on joint le log en attache
- sendmail.AddAttachment txtLog
-
- 'Envoi du mail
- sendmail.Send
-
- 'lecture du log
- function GetFile(txtLog)
- If txtLog<>"" Then
- Dim FS, FileStream
- Set FS = CreateObject("Scripting.FileSystemObject" )
- on error resume Next
- Set FileStream = FS.OpenTextFile(txtLog)
- GetFile = FileStream.ReadAll
- End If
- End Function
- function errorMessage(txtErrorLevel)
-
- if (txtErrorLevel >= 0 AND txtErrorLevel <= 16 ) Then
- Select Case txtErrorLevel
- Case 0
- errorMessage = "No errors occurred, and no copying was done. The source and destination directory trees are completely synchronized. "
- Case 1
- errorMessage = "One or more files were copied successfully (that is, new files have arrived)."
- Case 2
- errorMessage = "Some Extra files or directories were detected. Examine the output log for details. "
- Case 3
- errorMessage = "Certains fichiers ont été copiés. Des files supplémentaires étaient présents. Aucune erreur ne s'est produite."
- Case 4
- errorMessage = "Some Mismatched files or directories were detected. Examine the output log. Some housekeeping may be needed."
-
- Case 6
- errorMessage = "Il existe des fichiers supplémentaires et des fichiers qui ne correspondent pas. Aucun fichiers copiés et aucunr erreur apparue. Cela signifie que les fichiers existent déjà dans le répertoire de destination."
- Case 7
- errorMessage = "Les fichiers ont été copiés, une incompatibilité de fichier était présente et des fichiers supplémentaires étaient présents."
- Case 8
- errorMessage = "Some files or directories could not be copied (copy errors occurred and the retry limit was exceeded).Check these errors further."
- Case 16
- errorMessage = "Serious error. Robocopy did not copy any files. Either a usage error or an error due to insufficient access privileges on the source or destination directories."
- End Select
- else
- errorMessage= "Unknow Error, please read the log"
- end if
- End Function
|
le retour à la ligne est foireux : je voudrais qu'il affiche
Your Robocopy Backup Job was successfully completed - attached file has details
Details de l'error level : Certains fichiers ont été copiés. Des files supplémentaires étaient présents. Aucune erreur ne s'est produite.
(Error level 3)
Quelqu'un aurait une idée ?
|