PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Objet OLE Automation Mail Outlook : comment
Objet OLE Automation Mail Outlook : comment
Débuté par Sylv_01, 11 mar. 2015 14:51 - 5 réponses
Membre enregistré
49 messages
Popularité : +2 (2 votes)
Posté le 11 mars 2015 - 14:51
Bonjour à tous,
dans une appli Windev, je génère des mails en automatique avec un objet OLE Dynamique Outlook, jusque là pas de soucis.
Dans un cas bien précis, je créé le mail en code et avant de l'envoyer par la méthode .Send, je demande à l'utilisateur par une boite de dialogue Oui/Non s'il veut ajouter des fichiers au mail avant envoi.
Si oui j'insère dans le mail les fichiers sélectionnés puis j'envoi le mail en automatique.
Tout fonctionne correctement, sauf si l'utilisateur, avant de répondre à ma boite de dialogue, envoie le mail "manuellement" (par le bouton Envoyer du mail), j'ai alors un crash de l'appli au moment d’appeler la méthode .Send, puisque mon objet OLE n'est plus présent.
J'ai tenter de tester avant l'appel à la méthode .Send la présence de l'objet OLE mais ça ne fonctionne pas (test par rapport à Null)
Voici mon code, expurgé des infos non nécessaire à la compréhension globale :
Procedure PRIVÉE Envoi_Mail(sContact est une chaîne)
sFichiersAjoutés est une chaîne
OUTLOOK est un objet OLE dynamique
OLEEmail est un objet OLE dynamique
nItem est un entier = 0
OUTLOOK = allouer un objet OLE "Outlook.Application"
OLEEmail = OUTLOOK>>CreateItem(nItem)
sMessage est une chaîne
OLEEmail>>to= sContact
OLEEmail>>Importance = 2
OLEEmail>>bodyformat= 2 // Format HTML
OLEEmail>>subject = "Objet"
OLEEmail>>Display()// Important pour conserver la signature Outlook
OLEEmail>>HTMLBody(sMessage+CRLF + OLEEmail>>HTMLBody)
// Ajouter des pièces jointes (photos, etc.)
SELON Dialogue("Voulez-vous ajouter des autres documents au mail ?")
// &Ajouter
CAS 1
sFichiersAjoutés = fSélecteur("","Ajouter des fichiers","","",fselMulti)
SI sFichiersAjoutés <>"" ALORS
POUR TOUTE CHAINE sChaîneExtraite, nRang DE sFichiersAjoutés SEPAREE PAR RC
OLEEmail>>attachments>>Add(sChaîneExtraite)
FIN
FIN
// &Ne pas ajouter
CAS 2
FIN
SI OLEEmail<>Null ALORS// envoi que si le mail n'a pas déjà été envoyé manuellement (plante sinon)
OLEEmail>>Send()
FIN
Libérer OLEEmail
Libérer OUTLOOK


Par avance merci
Membre enregistré
49 messages
Popularité : +2 (2 votes)
Posté le 11 mars 2015 - 14:55
Désolé pour le titre peu explicite, je suis allé un peu vite pour poster et on ne peut pas éditer ses propres messages ???
Posté le 11 mars 2015 - 15:07
Bonjour Sylvie,

tu devrais regarder dans la classe cexcel ou cword comment pcsoft gère
ce genre de problèmes : chaque appel OLE est encapsulé dans un quand
exception pour intercepter ce genre d'erreur, afficher un message et
continuer en fonction du problème

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

NOUVEAU: WXReplication, votre système de réplication open source est
disponible sur mon site web !!!
WXShowroom.com : Montrez vos projets !
Plus d'information sur http://fabriceharari.com


On 3/11/2015 8:55 AM, Sylv_01 wrote:
Désolé pour le titre peu explicite, je suis allé un peu vite pour poster
et on ne peut pas éditer ses propres messages ???
Membre enregistré
49 messages
Popularité : +2 (2 votes)
Posté le 11 mars 2015 - 15:24
Bonjour Fabrice (moi c'est Sylvain, ou Sylv_01 en phonétique!)
Merci pour l'info, je vais regarder ça...
Posté le 11 mars 2015 - 16:12
Désolé pour le prénom...

Clairement, je ne parles pas phonétique :-(


On 3/11/2015 9:24 AM, Sylv_01 wrote:
Bonjour Fabrice (moi c'est Sylvain, ou Sylv_01 en phonétique!)
Merci pour l'info, je vais regarder ça...
Membre enregistré
49 messages
Popularité : +2 (2 votes)
Posté le 11 mars 2015 - 16:47
Pas grave, c'etait un boutade ! ;)
Moi non plus je ne parle pas phonétique, il s'agit des premières lettres de mon prénom concaténées avec mon N° de département d'adoption...