Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

envoie fichier via outlook express

3 réponses
Avatar
G_Berflot
J'ai développé un script pour envoyer un fichier que je souhaite transmettre
via Outlook toutes les nuits à mes collègues. Le problème réside dans le fait
que lorsque mon application "appelle" Outlook une fenêtre, signalant qu'une
application veut accéder au carnet d'adresse, s'ouvre et impose qu'un
opérateur autorise cette opération, ce qui n'est pas acceptable (puisque
cette opération doit s'effectuer alors que je ne suis pas présent):

set fs = CreateObject("Scripting.FileSystemObject")
Set ws = WScript.CreateObject("WScript.Shell")

set OlAp = CreateObject("outlook.application")
Set myNameSpace = OlAp.GetNameSpace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(6)
Set myForward = myFolder.Items(1).Forward
myForward.Recipients.Add "toto@hotmail.com"
myForward.Send

j'ai essayé de simuler la présence d'un opérateur qui autoriserait l'envoi
du fichier mais la fenêtre de message outlook n'a pas le focus et les
simulations de frappes clavier ne fonctionnent donc pas ....

WScript.Sleep 100
Ws.SendKeys "{RIGHT}"

WScript.Sleep 100
Ws.SendKeys "{ENTER}"

Outlook Express 6 sous Windows XP SP1

Comment dois je procéder ?
Avec mes remerciements

3 réponses

Avatar
Do Re Mi chel La Si Do
Bonsoir !

Plusieurs pistes :
- changer les paramètres de sécurité, pour annuler cette alerte
- envoyer le message par CDO.message (mais le message ne sera pas dans
les liste Outlook-express)
- wrapper MAPI

@-salutations

Michel Claveau
Avatar
G_Berflot
Tout d'abord merci pour votre réponse
1 J'ai fait une erreur en écrivant outlook express, dans la mesure où au
bureau j'utilise outlook. il n'est donc pas possible d'accéder au paramètre
qui permettrait d'éviter l'affichage de la "fenêtre d'autorisation"

2 En ce qui concerne les 2 autres propositions, je ne connais ni le CDO ni
en quoi consiste wrapper le MAPI ...


Bonsoir !

Plusieurs pistes :
- changer les paramètres de sécurité, pour annuler cette alerte
- envoyer le message par CDO.message (mais le message ne sera pas dans
les liste Outlook-express)
- wrapper MAPI

@-salutations

Michel Claveau






Avatar
Do Re Mi chel La Si Do
Bonjour !


Outllook, au lieu de Outlook-Express, ça change beaucoup de choses. Outlook
peut être piloter par COM (OLE-automation), et apporte des fonctionnalités
supplémentaires. Par contre, il n'a pas les facilités d'Outlook-Express,
pour analyser (décomposer) les messages. Contrairement à Outlook-Express,
Outlook ne sait pas, non plus, utiliser les newsgroups. Bref, il s'agit de
deux logiciels différents, et non d'une évolution de l'un vers l'autre.

Il reste que, si Outlook est défini comme logiciel de courrier par défaut,
c'est lui qui sera destinataire des instructions MAPI. MAPI est une
interface de programmation, utilisée par Windows, pour adresser le logiciel
de courrier par défaut.

CDO, lui, est une autre API d'envoi de courrier. Voici un (petit) exemple,
en VB-script :
Dim str,objEmail
Set objEmail = CreateObject("CDO.Message")
objEmail.From = ""
objEmail.To = ""
objEmail.Subject = "message d'essai"
objEmail.Textbody = "Corps (body) du message."
objEmail.AddAttachment "C:datafichier.txt"
objEmail.Send
Wscript.quit


@-salutations

Michel Claveau