Voici le code (légèrement modifié) que j'ai utilisé pour l'envoi de mail avec Outlook. L'intérêt est d'avoir une trace dans les éléments envoyés de l'utilisateur. D'autre part, les fonction Outlook de Windev ne m'on pas permis d'envoyer un mail au format HTML : le message reçu fait apparaître les balises...
Je prends le compte messagerie par défaut. Si un jour, j'ai une demande pour la sélection, je la rajouterai. Il me semble que dans l'exemple livré avec Windev, il y a les infos qui vont bien.
Première partie : Y'a-t'il Outlook sur le poste ?
Cette partie n'est pas à négliger. Il existe de nombreuses entreprises qui n'utilisent pas Outlook. Autant éviter de s'empoisonner la vie...
// on teste si outlook est lancé
// si non, on essaye de le lancer (dans un Quand Excepetion, Histoire de ne pas se taper un beau plantage).
// si succès le code se continue et on affiche la possibilitealors les interrupteurs restent cachés
Pour cet exemple, on considère que l'on a :
- un champ de saisie pour les destinataires
- un champ de saisie pour l'objet
- un champ de saisie HTML pour le corps du mail
- un bouton envoyer par "Outlouk" (caché)
- un bouton envoyer par "mail classique" (visible)
Deuxième partie : Envoi du mail
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 OautOUTLOOK est un objet Automation dynamique // Si un Outlook est déjà lancé, on va le récupérer OautOUTLOOK = ObjetActif("OutLook.Application") SI OautOUTLOOK = Null ALORS QUAND EXCEPTION DANS OautOUTLOOK = allouer un objet Automation "OutLook.Application" FAIRE RETOUR // Pas d'Outlook, on se sauve FIN libérer OautOUTLOOK // On libère Outlook, car à ce niveau, on ne sait pas si' l'utilisateur va vraiment s'en servir // Oulook est installé, on montre les éléments qui vont bien BTN_EnvoiOutlook..Visible = Vrai BTN_EnvoiEmailClassique..Visible = Faux FIN
Il se peut qu'il y ait des erreurs de saisie. N'hésitez pas à me le signaler, je corrigerai dans ce message
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 OautOUTLOOK est un objet OLE dynamique pautEmail est un objet OLE dynamique sSignature, sListeAdresses sont des chaînes OautOUTLOOK= allouer un objet OLE "Outlook.Application" // Création mail pautEmail = OautOUTLOOK>>CreateItem(0) // sujet pautEmail >>subject = SAI_Sujet //Adresse de l'expéditeur pautEmail>>Sender = SansEspace(UTILISAT.EmailUser) // signature Texte_CorpsMailHTML = sai_html + Texte_SignatureHTML // corps de mail pautEmail>>HTMLbody = Texte_CorpsMailHTML // Accusé de réception pautEmail>>OriginatorDeliveryReportRequested = Vrai // Parcours des destinataires sListeAdresses = "" POUR TOUTE CHAÎNE sDestinataire DE SAI_destinataires SEPAREE PAR ";" // Ajout du destinataire SI EmailVérifieAdresse(SansEspace(sDestinataire),emailValideSyntaxe) = emailAdresseValide ALORS sListeAdresses += sDestinataire + ";" //ajoute un destinataire FIN FIN SI sListeAdresses <> "" ALORS pautEmail>>to = sListeAdresses FIN // Parcours des copies (Cc) sListeAdresses = "" POUR TOUTE CHAÎNE sDestinataire DE SansEspace(sai_copie_mail) SEPAREE PAR ";" // Copie SI EmailVérifieAdresse(SansEspace(sDestinataire),emailValideSyntaxe) = emailAdresseValide ALORS sListeAdresses += sDestinataire + ";" //ajoute un destinataire FIN FIN pautEmail>>cc = sListeAdresses pautEmail >>attachments>>add(sDocPJ) //ajoute ma pièce jointe FIN //ajoute ma pièce jointe pautEmail >>attachments>>add(sDocPJ) // Envoi dans OutLook pautEmail>>Send() ToastAffiche("Mail envoyé") libérer pautEmail libérer pautOUTLOOK
Partager