OVH Cloud OVH Cloud

Script exchange (de Thierry)

6 réponses
Avatar
Stephane
Bonjour à tous

J'ai honteusement pompé un script sur la FAQ qui permet d'enregistrer
les caractéristiques et les pièces jointes d'un message envoye à un
dossier public (par exemple).
Pour les caractéristiques tout va bien.
Par contre pour enregistrer les pièces jointes, c'est la galère.
Ce que je fait (j'ai dû adapter):

Set myAtts = messTarget.attachments
StrDestFile = dfold.Path + "\" + StrRnd + ".txt"
Set a = oSys.CreateTextFile(StrDestFile, True)
a.WriteLine("Nbre: "&myAtts.Count)
'sauvegarde des fichiers attachés
For cpt=1 To myAtts.Count
If myAtts.Item(cpt).Type = 1 Then
StrDestFile = dfold.Path + "\" + StrRnd + ".atttt" CStr(cpt)
a.writeLine("Type: "&myAtts.Item(cpt).Type&":")
a.WriteLine("FileName:"&myAtts.Item(cpt).FileName&":")
a.WriteLine("DisplayName:"&myAtts.Item(cpt).DisplayName&":")
a.WriteLine("PathName:"&myAtts.Item(cpt).PathName&":")
a.WriteLine("Position:"&myAtts.Item(cpt).Position&":")
myAtts.Item(cpt).SaveAsFile(dFold.path + "\")
cpt=cpt+1
If Err.Number Then
a.writeline(Err.Number&VBCRLF&Err.Description)
Err.clear
End If
End If
Next


Pour la propriété Type pas de souci, par contre pour toutes les autes
j'ai l'erreur:
438
Cet objet ne gère pas cette propriété ou cette méthode
Fin de la boucle

Même erreur avzec SaveAsFile.
Je comprends par car j'ai fait ca avec l'aide en ligne d'outlook.

@+ Stephane - Des idées ?

6 réponses

Avatar
Thierry DEMAN [MVP]
Bonsoir Stéphane,

vérifie déjà la syntaxe... (voir + bas)

A bientôt,

--
Thierry DEMAN-BARCELÒ
MVP Exchange, SQL/Server
MCSE2003+M+S,MCSE+I,MCDBA
http://base.faqexchange.info
http://www.faqexchange.info
"Stephane" wrote in message
news:e1iarf$hdk$
Bonjour à tous

J'ai honteusement pompé un script sur la FAQ qui permet d'enregistrer les
caractéristiques et les pièces jointes d'un message envoye à un dossier
public (par exemple).
Pour les caractéristiques tout va bien.
Par contre pour enregistrer les pièces jointes, c'est la galère.
Ce que je fait (j'ai dû adapter):

Set myAtts = messTarget.attachments
StrDestFile = dfold.Path + "" + StrRnd + ".txt"
Set a = oSys.CreateTextFile(StrDestFile, True)
a.WriteLine("Nbre: "&myAtts.Count)
'sauvegarde des fichiers attachés
For cpt=1 To myAtts.Count
If myAtts.Item(cpt).Type = 1 Then
StrDestFile = dfold.Path + "" + StrRnd + ".atttt" CStr(cpt)


=> on dirait qu'il manque un & à ce niveau ::::: ".atttt" & Cstr(cpt)


a.writeLine("Type: "&myAtts.Item(cpt).Type&":")
a.WriteLine("FileName:"&myAtts.Item(cpt).FileName&":")
a.WriteLine("DisplayName:"&myAtts.Item(cpt).DisplayName&":")
a.WriteLine("PathName:"&myAtts.Item(cpt).PathName&":")
a.WriteLine("Position:"&myAtts.Item(cpt).Position&":")
myAtts.Item(cpt).SaveAsFile(dFold.path + "")
cpt=cpt+1
If Err.Number Then
a.writeline(Err.Number&VBCRLF&Err.Description)
Err.clear
End If
End If
Next


Pour la propriété Type pas de souci, par contre pour toutes les autes j'ai
l'erreur:
438
Cet objet ne gère pas cette propriété ou cette méthode
Fin de la boucle

Même erreur avzec SaveAsFile.
Je comprends par car j'ai fait ca avec l'aide en ligne d'outlook.

@+ Stephane - Des idées ?


Avatar
Stephane
Bonsoir Stéphane,

vérifie déjà la syntaxe... (voir + bas)


La syntax du script est bonne, c'est juste en corrigeant le retour des
lignes automatique que j'ai merdé et effacé le "&". En plus je
n'utilisait pas cette variable. J'ai simplifié au maximum ton script et
j'ai toujours le meme problème avec tout ce qui touche au nom de fichier.

a.WriteLine (messTarget.Text)
a.WriteLine (messTarget.Sender)
a.WriteLine (messTarget.subject)
a.WriteLine (messTarget.recipients(1).name)
a.WriteLine("Nbre pièce jointes: "&messTarget.attachments.Count)

'sauvegarde des fichiers attachés
For cpt=1 To messTarget.Attachments.Count
If messTarget.Attachments.Item(cpt).Type = 1 Then
a.writeLine("Type: "&messTarget.Attachments.Item(cpt).Type&":")
a.WriteLine("FileName:"&messTarget.Attachments.Item(cpt).FileName&":")
a.WriteLine("Position:"&messTarget.Attachments.Item(cpt).Position&":")
If Err.Number Then
a.writeline(Err.Number&VBCRLF&Err.Source&VBCRLF&Err.Description)
Err.clear
End If
cpt=cpt+1
End If
Next


Le pire c'est que tout est écrit sauf le FileName. Même la position est
écrite !! En dernier ligne j'ai toujours la meme erreur:
Cet objet ne gère pas cette propriété ou cette méthode

Si je mets la ligne avec le FileName en commentaire j'ai pas d'erreur.

@+ Stephane - J'y comprends rien

Avatar
Stephane
Salut

En reprenant ton script je me suis souvenu que pour enregister les
pièces jointes tu utilisais la focntion WriteToFile mais apparement elle
n'existe pas en vbscript en touta cas j'ai pas trouvé d'info.
Elle sort d'où ?

@+ Stephane
Avatar
Thierry DEMAN [MVP]
Bonsoir,

elle existe dans l'objet de messagerie ! (L'attachement)

--
Thierry DEMAN-BARCELÒ
MVP Exchange, SQL/Server
MCSE2003+M+S,MCSE+I,MCDBA
http://base.faqexchange.info
http://www.faqexchange.info
"Stephane" wrote in message
news:e1npfb$gms$
Salut

En reprenant ton script je me suis souvenu que pour enregister les pièces
jointes tu utilisais la focntion WriteToFile mais apparement elle n'existe
pas en vbscript en touta cas j'ai pas trouvé d'info.
Elle sort d'où ?

@+ Stephane


Avatar
Stephane
Bonsoir,

elle existe dans l'objet de messagerie ! (L'attachement)


Salut

Le pire c'est que effectivement ca fonctionne :-)) Par contre je ne
trouve de description nul part, ni dans l'explorateur d'objet d'oullok
ni dans l'aide en ligne d'Outlook. Tu sais pouquoi ? C'est parce que
c'est uniquement dispo sur exchange ?

@+ Stephane - et grand merci

Avatar
Stephane

c'est uniquement dispo sur exchange ?


Je m'auto-répond à priori oui car je viens de trouver des infos sur le
msdn exchange.

@+ Stephane