Copier / Coller un fichier texte dans un mail
Bonjour,
J'aimerais savoir s'il est possible de copier / coller un fichier texte dans le corps d'un mail ?
J'utilise MailSend pour envoyer des mails récapitulant les erreurs éventuelles des sauvegardes et plutôt que d'avoir à ouvrir une pièce jointe, il serait plus adapté d'avoir le résultat de la sauvegarde dans le corps du mail.
Merci d'avance pour vos lumières
Coller un fichier lu par vbs dans un mail
Bonjour,
Le code ci-dessous permet de lire le contenu d'un fichier texte. Je peux le faire afficher dans un msgbox ou par wscript.echo, mais je ne parviens pas à le faire passer dans une variable pour l'envoyer par mail. Voyez-vous une combine qui permettrait de réaliser ceci ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Option Explicit
Const conForReading = 1
'Declare variables
Dim objFSO, objReadFile, contents
'Set Objects
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objReadFile = objFSO.OpenTextFile("H:\Sauvegardes\Logs\Robocopy_Erreurs.txt", 1, False)
Set Sh=CreateObject("WScript.Shell")
'Read file contents
contents = objReadFile.ReadAll
'Close file
objReadFile.close
'Display results
wscript.echo contents |
Si je fais vMsg="""Ceci est le texte de mon message""" ça fonctionne
si je fais vMsg=contents (contents contient une ligne de texte) ça ne fonctionne pas
Merci d'avance pour vos conseils
Message Texte formaté avec une Fonction pour simplifier les problèmes des guillemets (") et les espaces
Citation:
Envoyé par
Dan25
Bonjour,
En passant par l'envoi de mail par cdo, ça fonctionne très bien, même s'il ne faut pas que j'utilise le format Html, car j'envoie un texte formaté par Robocopy (presque un tableau) qui comporte des espaces... et qui n'est plus lisible en html.
:salut:
Concernant les problèmes des guillemets (") et les espaces.On peut résoudre ceci facilement en ajoutant cette petite fonction.
un exemple d'utilisation
Code:
1 2 3 4
| 'Fonction pour simplifier les problèmes des guillemets (") et les espaces
Function qq(strIn)
qq = Chr(34) & strIn & Chr(34)
End Function |
Donc ton Code devient alors :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| Const conForReading = 1
'Declare variables
Dim objFSO, objReadFile, contents, Sh, vDest, vMailSrv, vDomain, vExpediteur, vExecution, vSujet, vMsg, vPJ
'Set Objects
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objReadFile = objFSO.OpenTextFile("H:\Sauvegardes\Logs\Robocopy_Data2_Erreurs.txt", 1, False)
Set Sh=CreateObject("WScript.Shell")
'Read file contents
contents = objReadFile.ReadAll
'Close file
objReadFile.close
'Display results
vDest="informatique@rdc.com"
vMailSrv="smtp.rdc.com"
vExpediteur="Sauvegarde_Data2@rdc.com"
vSujet=qq("Sauvegarde Data2")
vMsg=qq("Ci-joint le CR de la sauvegarde du serveur Data2") & vbCrLf & vbCrLf & qq(contents)
vPJ="H:\Sauvegardes\Logs\Robocopy_Data2_Erreurs.txt"
wscript.echo vMsg
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = vSujet
objMessage.From = vExpediteur
objMessage.To = vDest
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = vMailSrv
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Update
objMessage.TextBody=vMsg
If vPJ <> "" Then
objMessage.AddAttachment(vPJ)
end if
on error resume next
objMessage.Send
If Err.Number <>0 Then
Msgbox "le mail n'a pas pu être envoyé !",16,"Erreur d'envoi du Mail"
MsgBox Err.Description,16,"Erreur d'envoi du Mail"
Else
Msgbox "Le mail a été bien envoyé !",64,"Information"
End If
'Fonction pour simplifier les problèmes des guillemets (") et les espaces
Function qq(strIn)
qq = Chr(34) & strIn & Chr(34)
End Function |
Alors tu peux tester ce dernier code et dis-moi le résultat ;) :ccool:
Cordialement