Problème pour renommer un fichier avant de l'envoyer par mail
mistermail
Messages postés2Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention 4 août 2009
-
31 juil. 2009 à 16:38
mistermail
Messages postés2Date d'inscriptionjeudi 16 juillet 2009StatutMembreDernière intervention 4 août 2009
-
4 août 2009 à 09:37
Bonjour,
Voila j'aimerais renommer les fichiers présents dans un répertoire avant de les envoyer par mail.
Je ne vois pas où se trouve le problème, Pouvez-vous m'aider ?
C'est juste la partie renommage qui va pas car le reste fonctionne seul mais si vous voyez des optimisations, n'hésitez pas à me donner.
Voici ma source :
'***************************************************************
'Recherche d'un fichier texte
'Si le fichier est présent envoi par mail
'Trace dans un fichier de log
'Ce script est à lancé à l'ouverture d'une session
'***************************************************************
'***************************************************************
'Liste des paramètres pouvant être modifiés
'Répertoire de recherche
RepSearch="C:\recherche"
'Répertoire d'écriture du log
RepLog="C:\log"
'Répertoire de stockage
RepStk="C:\stockage"
'Nom du fichier de trace
FichierTrace="Log.txt"
'Paramétrage des attributs du mail (expéditeur, destinataires, copie, sujet, corps, serveur smtp)
Expediteur="<toto@toto.com>"
Destinataire="<tata@tata.com>
DestinataireCopie="<toto@toto.com>"
SujetMail="XML"
CorpsMail="Text
Set fs2 = CreateObject("Scripting.FileSystemObject")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFiles = objFSO.GetFolder(RepSearch).Files
Set log = fs2.opentextfile(FichierLog,8,True)
For each file in objfiles
set fs3 = CreateObject("Scripting.FileSystemObject")
set fichier1 = fs3.GetFileName(file)
Set ftxt1 = fs3.GetFile(file)
If Err Then
log.write(Now&" Le fichier "&file&" n'a pas pu être expédié."&VbCrLf)
On Error GoTo 0
Else
Set FS1 = CreateObject("Scripting.FileSystemObject")
set Fichier = fs1.GetFileName(file)
Set Ftxt = fs1.GetFile(file)
log.write(Now&" Le fichier "&file&" a été envoyé avec Succès et a été copié à l'emplacement "&RepStk&"."&VbCrLf)
Ftxt.copy(RepStk&""&fichier)
if Ftxt.FileExists(RepStk&""&fichier) then
Ftxt.delete
End if
End If
End With
Next
stop
Merci d'avance
A voir également:
Problème pour renommer un fichier avant de l'envoyer par mail
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 2 août 2009 à 23:27
Bonsoir à tous,
"Petites retouches" sur ton script, mistermail.
- parcours du folder "RepSearch";
a) si extension du fichier <> xml, rename du fichier dans le même folder avec extension .xml;
- envoi du mail:
si ok, move du fichier dans "RepStk" + write log;
si not ok, write log.
b) si extension du fichier = xml, envoi du mail;
- envoi du mail:
si ok, move du fichier dans "RepStk" + write log;
si not ok, write log.
Test mail non effectué
'***************************************************************
'Liste des paramètres pouvant être modifiés
Option Explicit
Const ForAppending = 8
Dim RepSearch, RepLog, RepStk, FichierTrace
'Répertoire de recherche
RepSearch="c:\recherche"
'Répertoire d'écriture du log
RepLog="c\log"
'Répertoire de stockage
RepStk="c:\stockage"
'Nom du fichier de trace
FichierTrace="Log.txt"
'***************************************************************
Dim objFso, objFile
Dim strFile, strLog, strNewFile
Dim FichierLog
FichierLog = RepLog & FichierTrace
Set objFso = CreateObject("Scripting.FileSystemObject")
For each objFile in objFso.GetFolder(RepSearch).Files
Select Case LCase(objFso.GetExtensionName(objFile))
Case "xml"
WriteLog Now & vbTab & "Le fichier """ & objFile.Path & """ existait déjà..." & _
"Tentative d'envoi du mail"
SendingMail(objFile.Path)
Case Else
strNewFile = RepSearch & Mid(objFile.Name, 1, InStrRev(objFile.Name, ".")) & "xml"
objFso.MoveFile objFile.Path, strNewFile
SendingMail(strNewFile)
End Select
Next
Set objFso = Nothing
'***************************************************************
Sub WriteLog(ArgLog)
Dim objLog
Set objLog = objFso.OpenTextFile(FichierLog, ForAppending, True)
objLog.Write ArgLog & vbcrlf
objLog.Close
Set objLog = Nothing
End Sub
'***************************************************************
Sub SendingMail(ArgFile)
Dim Emetteur, Destinataire, DestinataireCopie, SujetMail, CorpsMail, ServeurSMTP
'Paramétrage des attributs du mail (expéditeur, destinataires, copie, sujet, corps, serveur smtp)
Emetteur="<toto@toto.com>"
Destinataire="<tata@tata.com>
DestinataireCopie="<toto@toto.com>"
SujetMail="XML"
CorpsMail="Text
"
ServeurSMTP="smtp.toto.com"
Dim iMsg, iConf
'Create the message object.
Set iMsg = CreateObject("CDO.Message")
'Create the configuration object.
Set iConf = iMsg.Configuration
'Set the fields of the configuration object to send by using SMTP through port 25.
With iConf.Fields
.item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = ServeurSMTP
.Update
End With
'Set the To, From, Subject, and Body properties of the message.
With iMsg
.To=Destinataire
.CC=DestinataireCopie
.From=Emetteur
.Subject=SujetMail
.HTMLBody=CorpsMail
.AddAttachment(ArgFile)
On Error Resume Next
.Send
If Err Then
WriteLog Now & vbTab & "Le fichier """ & objFile.Path & """ n'a pu être expédie."
On Error GoTo 0
Else
objFso.MoveFile ArgFile, RepStk
WriteLog Now & vbTab & "Le fichier """ & objFile.Path & _
""" a été envoyé avec Succès et a été copié à l'emplacement """ & _
RepStk & """." & vbCrLf
End If
End With
Set iMsg = Nothing
Set iConf = Nothing
End Sub
'***************************************************************