OVH Cloud OVH Cloud

Outlook+vbscript

5 réponses
Avatar
berthelagrandepatte
Bonjour

J'ai une demande sur outlook. Nous recevons un mail tous les jours du meme
expéditeur accompagné d'une piece jointe. Aujourd'hui, l'enregistrement et le
renommage de cette pièce jointe est manuel. Je dois l'automatiser.
Est il possible avec vbscript de réaliser cette tache ?? Et si oui,comment ?

Merci de vos réponses

5 réponses

Avatar
teddy
Ce n'est plus possible avec les patches de sécurité Outlook qui interdisent
toute automation.

"berthelagrandepatte" a
écrit dans le message de news:

Bonjour

J'ai une demande sur outlook. Nous recevons un mail tous les jours du meme
expéditeur accompagné d'une piece jointe. Aujourd'hui, l'enregistrement et
le
renommage de cette pièce jointe est manuel. Je dois l'automatiser.
Est il possible avec vbscript de réaliser cette tache ?? Et si oui,comment
?

Merci de vos réponses


Avatar
Ripley
" teddy" a écrit dans le message de
news:%
Ce n'est plus possible avec les patches de sécurité Outlook qui
interdisent

toute automation.


Bjr,

on peut contourner en utilisant une API tierce ( par ex.
http://www.dimastr.com/redemption/ )
Une fois le fonctionnement de l'API compris ( un peu différent par rapport à
l'API d'Outlook ) celà fonctionne sans Pb

Cdt

Laurent

Avatar
berthelagrandepatte


" teddy" a écrit dans le message de
news:%
Ce n'est plus possible avec les patches de sécurité Outlook qui
interdisent

toute automation.


Bjr,

on peut contourner en utilisant une API tierce ( par ex.
http://www.dimastr.com/redemption/ )
Une fois le fonctionnement de l'API compris ( un peu différent par rapport à
l'API d'Outlook ) celà fonctionne sans Pb

Cdt

Laurent

Si je comprend bien, Si j'utilise ce script que je viens de trouver sur le

Net , cela ne fonctionnera pas. Est il possible de le faire sous VBA??

----------------------------------------------------------

'***********************************************
'* This script gets Outlook email attachements *
'* and saves them into a specified directory. *
'*_____________________________________________*
'* By Philippe Heiz, 2003. *
'***********************************************

'---------------------------------
' CHANGE THE FOLLOWING SETTINGS
'---------------------------------
Outlook_Archive = "Mailbox - Heiz, Philippe"
Outlook_Folder = "Inbox"
Outlook_SubFolder1 = ""
Outlook_SubFolder2 = ""
Outlook_SubFolder3 = ""

Subject_InStr = "BBH MAER DATA FOR BACKTESTING"
Get_All_Files = True
Delete_Mail = False

Target_Folder = "C:TEMPVBE"
Target_File_Name = "TEST.XLS"

Log_File_Long_Name = "C:TEMPVBEOutlook.log"

'---------------------------------
' DO NOT CHANGE THE FOLLOWING CODE
'---------------------------------
Call GetAttachements
Sub GetAttachements() '30
cpt = 0
Set objOutlook = CreateObject("Outlook.Application")
Set objFolder = objOutlook.GetNamespace("MAPI").Folders(Outlook_Archive)

If Not Log_File_Long_Name = "" Then Set objFSO =
CreateObject("Scripting.FileSystemObject")
If Not Log_File_Long_Name = "" Then Set objLog =
objFSO.CreateTextFile(Log_File_Long_Name)
If Not Log_File_Long_Name = "" Then objLog.WriteLine Now()
If Not Log_File_Long_Name = "" Then objLog.WriteLine
"-------------------------"

On Error Resume Next
For i = 0 To 3
Select Case i
Case 0
If Not Outlook_Folder = "" Then
Set objFolder = objFolder.Folders(Outlook_Folder)
Else
Exit For
End If
Case 1
If Not Outlook_SubFolder1 = "" Then
Set objFolder = objFolder.Folders(Outlook_SubFolder1)
Else
Exit For
End If
Case 2
If Not Outlook_SubFolder2 = "" Then
Set objFolder = objFolder.Folders(Outlook_SubFolder2)
Else
Exit For
End If
Case 3
If Not Outlook_SubFolder3 = "" Then
Set objFolder = objFolder.Folders(Outlook_SubFolder3)
Else
Exit For
End If
End Select
Next

If Not Err.Number = 0 Then
If Not Log_File_Long_Name = "" Then objLog.WriteLine "ERROR: Outlook
archive path is not valid:"
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
"Outlook_Archive =" & Chr(9) & Outlook_Archive
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
"Outlook_Folder =" & Chr(9) & Outlook_Folder
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
"Outlook_SubFolder1 =" & Chr(9) & Outlook_SubFolder1
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
"Outlook_SubFolder2 =" & Chr(9) & Outlook_SubFolder2
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
"Outlook_SubFolder3 =" & Chr(9) & Outlook_SubFolder3
If Not Log_File_Long_Name = "" Then objLog.WriteLine
"-------------------------"
Exit Sub
End If
On Error GoTo 0

Set objItems = objFolder.Items
For mailIndex = objItems.Count To 1 Step -1
'On Error Resume Next
Set objMailItem = objItems.Item(mailIndex)
If objMailItem.Attachments.Count > 0 Then
If not InStr(1, objMailItem.Subject, Subject_InStr, 1) = 0 Then
If Not Log_File_Long_Name = "" Then objLog.WriteLine
objMailItem.Subject

On Error Resume Next
If Get_All_Files Then
For i = 1 To objMailItem.Attachments.Count
Set PJ = objMailItem.Attachments.Item(i)
PJ.SaveAsFile Target_Folder & PJ.DisplayName
If Not Log_File_Long_Name = "" Then objLog.WriteLine
Chr(9) & PJ.DisplayName
cpt = cpt + 1
Next
Else
Set PJ = objMailItem.Attachments.Item(1)
If Target_File_Name = "" Then Target_File_Name =
PJ.DisplayName
PJ.SaveAsFile Target_Folder & Target_File_Name
If Not Log_File_Long_Name = "" Then objLog.WriteLine
Chr(9) & PJ.DisplayName
cpt = cpt + 1
End If
If Not Err.Number = 0 Then
If Not Log_File_Long_Name = "" Then objLog.WriteLine "ERROR:
Target path is not valid:"
If Not Log_File_Long_Name = "" Then objLog.WriteLine Chr(9) &
Target_Folder
If Not Log_File_Long_Name = "" Then objLog.WriteLine
"-------------------------"
Exit Sub
End If
On Error GoTo 0

If Delete_Mail Then objMailItem.Delete
End If
End If
Next

If Not Log_File_Long_Name = "" Then objLog.WriteLine
"-------------------------"
If Not Log_File_Long_Name = "" Then objLog.WriteLine cpt & "
attachment(s) treated"
End Sub
'---------------------------------

Merci




Avatar
F. Dunoyer [MVP]
berthelagrandepatte vient de nous annoncer :
Bonjour

J'ai une demande sur outlook. Nous recevons un mail tous les jours du meme
expéditeur accompagné d'une piece jointe. Aujourd'hui, l'enregistrement et le
renommage de cette pièce jointe est manuel. Je dois l'automatiser.
Est il possible avec vbscript de réaliser cette tache ?? Et si oui,comment ?

Merci de vos réponses


es tu obligé de passer pr outlook ??
s'il s'agit d'un serveur POP tu peux peut etre faire ça avec le pendant
de BLAT (blat c'est l'emission) qui doit s'appeler Postie (j'avais
postit en tete)
http://www.infradig.com/infradig/postie/index.shtml

ou getmail
http://logiciels.ntfaqfr.com/LireFiche.php?numeros

--
François Dunoyer [MVP Windows Server / Security]
Quelques trucs et des astuces pour Windows : http://fds.mvps.org/ta/
Site perso : http://www.fdunoyer.net

Avatar
GIRAUD Alexandre
Bonjour,

Il est vrai, comme te l'on dit certains personnes que l'on ne peut plus,
pour des raisons de sécurité atteindre les emails directement depuis un
script ou programme. Sauf avoir une fenetre d'avertissement ... mais il est
également possible, avec un serveur Exchange de publier des templates de
sécurité qui modifient le comportement d'Outlook afin de ne pas avoir cette
fenetre d'autorisation. mais là je m'écarte du sujet.

Cependant, si les messages arrivent (ou pourraient) en Pop3/imap .. C'est
gagné !
Oui, tu utilises des programmes comme getmail.exe. Par aileurs tu peux lui
forcer de transformer le contenu des emails en fichiers texte, afin d'en
analyser le contenu. Et bien sur, tu recupères la pièce jointe et éxecutes
les programmes que tu veux grâce à ton script.

N'hésite pas à revenir vers nous.
Bon courage


"berthelagrandepatte" a
écrit dans le message de news:

Bonjour

J'ai une demande sur outlook. Nous recevons un mail tous les jours du meme
expéditeur accompagné d'une piece jointe. Aujourd'hui, l'enregistrement et
le
renommage de cette pièce jointe est manuel. Je dois l'automatiser.
Est il possible avec vbscript de réaliser cette tache ?? Et si oui,comment
?

Merci de vos réponses