Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 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 | | Calendrier |
|
|
| Interface avec Outlook | |
| | |
Auteur | Message |
---|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Mer 3 Mar 2021 - 21:47 | |
| Bonsoir à tous ! @Klaus Il subsiste une anomalie. Les mails entrants ne sont toujours pas détectés. Description du test effectué :Fichier KGF du 03/03/2021 14h02 Code-source du 03/03/2021 14h06 Le nom du dossier de la boîte de réception est correctement renseigné : Inbox Outlook et l'interface pour Outlook actifs. Je m'envoie un mail à 21h20. A 21h21, Outlook reçoit le mail dans le dossier Inbox. A 21h31, l'interface n'a toujours rien reçu. Je vérifie le contenu du fichier .ini. Toutes les 60 secondes précisément, il se met à jour avec l'heure courante. Il y a donc un timer actif calibré à 60 secondes qui fonctionne bien, mais il n'y a pas de détection des mails arrivés entre-temps dans Outlook. Il reste une faille quelque part avec mon dossier "Inbox". | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Mer 3 Mar 2021 - 23:44 | |
| Je me suis plongé à nouveau sur nons échanges, Marc. Et il y un point qui me chiffonne. Dans ton post tu dis: Oui, je vois bien un dossier "Inbox". Pourtant, je vois aussi un dossier "Boîte de réception". C'est curieux, non ? Es-tu sûr de tes noms de dossiers ? Pour ma part, je vais parcourir à nouveau mon code pour être certain qu'il n'y a pas encore un truc code "en dur" dans ce module... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 0:03 | |
| J'ai vérifié. Le timer surveille bien le dossier dont le nom est passé en 3ème paramètre à la ligne 115: - Code:
-
res% = dll_call5("SetOutlookNewMailMemo",POL%,handle(1102),adr(reception$),1,2) et la variable reception$ est chargée à la ligne 15: - Code:
-
reception$ = "Boîte de réception" : ' <================== mettre ici le nom EXACT de votre dossier de réception de nouveaux mails Pour tracer au plus près, je viens de déposer une version spéciale pour toi dans mon site. Lorsqye le timer se déclenche, il commence par afficher un message avec le nom du dossier surveillé, histoire de vérifier qye c'est bien le bon... | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 0:06 | |
| Voici ci-dessous, une vue de l'arborescence des dossiers Outlook. Ce n'est pas moi qui demande à ce que les messages entrants arrivent dans Inbox. La configuration s'est faite automatiquement lors de la création du compte. J'ai juste renseigné l'adresse mail (outlook.panoramic@free.fr) et le mot de passe que j'ai créés pour effectuer des tests. Quand je reçois un mail, il arrive directement dans Inbox. Bref, ça ne vaut peut-être pas le coup de chercher plus loin. C'est peut-être une spécificité de cette version d'Outlook. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 0:21 | |
| - Citation :
- je viens de déposer une version spéciale pour toi dans mon site.
Je ne la trouve pas. - Spoiler:
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 0:27 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 0:46 | |
| J'ai fait autrement: Je détecte maintenant automatiquement le dossier de réception, quelque soit la configuration. Ceci se fait à l'intérieur de la fonction CreateOutlook. Le 3ème paramètre de la fonction SetOutlookNewMailMemo est maintenant simplement ignoré et il disparaîtra à terme.
Est-ce que tu trouves une amélioration ? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 0:55 | |
| Merci Klaus, c'est téléchargé et testé : J'ai bien la fenêtre d'information toutes les minutes qui mentionne "Inbox" : Mais toujours pas les mails entrants. J'ai envoyé trois mails à 00h30, 00h35 et 00h40. Tous réceptionnés par Outlook directement dans Inbox, mais pas de réaction de l'interface. Dans l'interface, si je clique sur le dossier Inbox, la liste des mails est rafraichie et mails "entre-temps" apparaissent. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 0:56 | |
| - Citation :
- J'ai fait autrement...
Je teste de suite... | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 1:10 | |
| Je suis désolé, Klaus, ce n'est pas bon. Mail envoyé à 00h57 Reçu par Outlook à 00h58 A 1h05, il n'était toujours pas détecté par l'interface. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 1:13 | |
| Et tu avais lancé l'interface avant l'envoi du des mails concernés ? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 1:17 | |
| Oui.
Je lance Outlook, puis je lance l'interface et seulement après je m'envoie des mails.
Je viens de vérifier la version de KGF, c'est bien la dernière du 04/03/2021 00h42 avec laquelle je viens de faire le test.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 1:33 | |
| J'ai refait KGF.dll, à 01:26:42. Il y a maintenant une clé supplémentaire, indiquant date et heure du dernier démarrage (en fait du dernier appel à CreateOutlook).
Mais je ne comprends toujours pas pourquoi chez toi, le timer ne détecte pas un mail arrivé après le lancement, alors que chez moi, ça passe comme une lettre à la poste.
| |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 1:38 | |
| Attendons d'autres tests de Panoramiciens. Je pique du nez, il est temps pour moi d'aller dormir. A demain ! Bonne nuit Klaus ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 2:06 | |
| J'ai mis une trace sur le timer. Dans le programme de démo qui suit, la ligne 15 détermine s'il y a trace ou non. Dans la version actuelle, la trace est activée. Pour la désactiver, il suffit de remplacer le 1 par un 0. - Code:
-
' test_Outlook_2007.bas
label creer, deplacer, agrandir, cacher, montrer, montrer_cles, sortir, UserEvent, close0 label navigation_reception, information_dossiers_1, information_dossiers_2, information_dossiers_3 label information_mails_1, information_mails_2, information_mails_3, information_mail1, action_vider1 label navigation_contacts_oui, navigation_contacts_non, navigation_dossier_oui, navigation_dossier_non label action_deplacer, action_creer_mail_programme, action_creer_mail_dialog, action_chercher_contact_nom label action_chercher_contact_nom_suivant, navigation_comptes_oui, navigation_comptes_non label information_comptes_1, information_comptes_2, information_comptes_3
dim res%, POL%, s$, s1$, mail%, i%, reception$, TraceTimer% dim Dossier%, MailIndex%, PieceIndex%, Sujet$, Expediteur$, Adresse$, Contact%, MailChoisi%, DossierChoisi% dim CompteParDefaut%
TraceTimer% = 1 : ' <================== mettre ici 1 pour avoir la trace ou 0 sinon
main_menu 1 sub_menu 11 : parent 11,1 : caption 11,"Fichier" sub_menu 111 : parent 111,11 : caption 111,"Creer l'interface" : on_click 111,creer sub_menu 112 : parent 112,11 : caption 112,"Déplacer l'interface" : on_click 112,deplacer sub_menu 113 : parent 113,11 : caption 113,"Agrandir l'interface" : on_click 113,agrandir sub_menu 114 : parent 114,11 : caption 114,"Cacher l'interface" : on_click 114,cacher sub_menu 115 : parent 115,11 : caption 115,"Montrer l'interface" : on_click 115,montrer sub_menu 116 : parent 116,11 : caption 116,"-" sub_menu 117 : parent 117,11 : caption 117,"Montrer les clés registre pour KGF" : on_click 117,montrer_cles sub_menu 118 : parent 118,11 : caption 118,"-" sub_menu 119 : parent 119,11 : caption 119,"Sortir" : on_click 119,sortir sub_menu 21 : parent 21,1 : caption 21,"Navigation" sub_menu 211 : parent 211,21 : caption 211,"Boite de réception" : on_click 211,navigation_reception sub_menu 212 : parent 212,21 : caption 212,"-" sub_menu 213 : parent 213,21 : caption 213,"Afficher les contacts" : on_click 213,navigation_contacts_oui sub_menu 214 : parent 214,21 : caption 214,"Cacher les contacts" : on_click 214,navigation_contacts_non sub_menu 215 : parent 215,21 : caption 215,"Afficher le sélecteur des dossiers" : on_click 215,navigation_dossier_oui sub_menu 216 : parent 216,21 : caption 216,"Cacher le sélecteur des dossiers" : on_click 216,navigation_dossier_non sub_menu 217 : parent 217,21 : caption 217,"Afficher le sélecteur des comptes" : on_click 217,navigation_comptes_oui sub_menu 218 : parent 218,21 : caption 218,"Cacher le sélecteur des comptes" : on_click 218,navigation_comptes_non sub_menu 31 : parent 31,1 : caption 31,"Informations" sub_menu 311 : parent 311,31 : caption 311,"Liste des dossiers - noms" : on_click 311,information_dossiers_1 sub_menu 312 : parent 312,31 : caption 312,"Liste des dossiers - objets" : on_click 312,information_dossiers_2 sub_menu 313 : parent 313,31 : caption 313,"Liste des dossiers - noms et objets" : on_click 313,information_dossiers_3 sub_menu 314 : parent 314,31 : caption 314,"-" sub_menu 315 : parent 315,31 : caption 315,"Liste des comptes - noms" : on_click 315,information_Comptes_1 sub_menu 316 : parent 316,31 : caption 316,"Liste des comptes - objets" : on_click 316,information_Comptes_2 sub_menu 317 : parent 317,31 : caption 317,"Liste des comptes - noms et objets" : on_click 317,information_Comptes_3 sub_menu 318 : parent 318,31 : caption 318,"-" sub_menu 319 : parent 319,31 : caption 319,"Liste des mails - noms" : on_click 319,information_mails_1 sub_menu 320 : parent 320,31 : caption 320,"Liste des mails - objets" : on_click 320,information_mails_2 sub_menu 321 : parent 321,31 : caption 321,"Liste des mails - noms et objets" : on_click 321,information_mails_3 sub_menu 322 : parent 322,31 : caption 322,"-" sub_menu 323 : parent 323,31 : caption 323,"Informations mail 1" : on_click 323,information_mail1 sub_menu 41 : parent 41,1 : caption 41,"Actions" sub_menu 411 : parent 411,41 : caption 411,"Vider Courrier indésirable" : on_click 411,action_vider1 sub_menu 412 : parent 412,41 : caption 412,"Déplacer un mail" : on_click 412,action_deplacer sub_menu 413 : parent 413,41 : caption 413,"Créer un mail par programme" : on_click 413,action_creer_mail_programme sub_menu 414 : parent 414,41 : caption 414,"Créer un mail avec dialogue" : on_click 414,action_creer_mail_dialog sub_menu 415 : parent 415,41 : caption 415,"Chercher un contact par son nom" : on_click 415,action_chercher_contact_nom sub_menu 416 : parent 416,41 : caption 416,"Chercher un contact suivant par son nom" : on_click 416,action_chercher_contact_nom_suivant width 0,800 memo 1001 : hide 1001 : bar_both 1001 memo 1101 : hide 1101 : bar_both 1101 memo 1102 : hide 1102 : bar_both 1102
container 1002 : top 1002,height_client(0)-80 : left 1002,10 width 1002,width_client(0) : height 1002,height_client(0) - top(1002) caption 1002,"Etat de l'interface Panoramic - Outlook" alpha 1003 : parent 1003,1002 : top 1003,20 : left 1003,10 : parent 1003,1002 : caption 1003,"Etat de l'interface:" edit 1004 : inactive 1004 : top 1004,20 : left 1004,100 : parent 1004,1002 : font_bold 1004 : text 1004,"Non connecté" alpha 1005 : parent 1005,1002 : top 1005,10 : left 1005,240 : parent 1005,1002 : caption 1005,"Dossier choisi:" edit 1006 : inactive 1006 : top 1006,10 : left 1006,320 : width 1006,200 : parent 1006,1002 : font_bold 1006 : text 1006,"<aucun>" alpha 1060 : top 1060,10 : left 1060,530 : parent 1060,1002 : caption 1060,"===>" edit 1061 : inactive 1061 : top 1061,10 : left 1061,560 : width 1061,200 : parent 1061,1002 : font_bold 1061 : text 1061,"<aucun>"
alpha 1007 : parent 1007,1002 : top 1007,30 : left 1007,240 : parent 1007,1002 : caption 1007,"Contact choisi:" edit 1008 : inactive 1008 : top 1008,30 : left 1008,320 : width 1008,200 : parent 1008,1002 : font_bold 1008 : text 1008,"<aucun>" alpha 1009 : parent 1009,1002 : top 1009,50 : left 1009,10 : parent 1009,1002 : caption 1009,"Email choisi:" edit 1010 : inactive 1010 : top 1010,50 : left 1010,100 : width 1010,420 : parent 1010,1002 : font_bold 1010 : text 1010,"<aucun>"
alpha 1011 : top 1011,35 : left 1011,530 : parent 1011,1002: caption 1011,"Compte:" edit 1012 : inactive 1012 : top 1012,50 : left 1012,560 : width 1012,200 : parent 1012,1002 : font_bold 1012 : text 1012,"<aucun>"
dll_on "KGF.dll"
on_user_event UserEvent
end
close0: POL% = dll_call1("DeleteOutlook",POL%) return
sortir: POL% = dll_call1("DeleteOutlook",POL%) terminate return
creer: if POL%<>0 then return width 0,800 height 0,700 top 1002,height_client(0)-80 : width 1002,width_client(0) - 20 POL% = dll_call4("CreateOutlook",handle(0),10,10,1) if POL%=0 message "Erreur en création de l'interface Outlook" return end_if text 1004,"Connecté" s$ = string$(200," ") res% = dll_call6("GetOutlookInformation",POL%,7,0,adr(s$),0,0) s$ = trim$(s$) text 1012,s$ s$ = string$(30," ") res% = dll_call6("GetOutlookInformation",POL%,9,0,adr(s$),0,0) caption 0,"Outlook version "+trim$(s$) res% = dll_call5("SetOutlookNewMailMemo",POL%,handle(1102),TraceTimer%,1,2) return deplacer: if POL%=0 then return full_space 0 res% = dll_call3("LocateOutlook",POL%,0,0) top 1002,height_client(0)-100 : left 1002,0 : width 1002,width_client(0) return agrandir: if POL%=0 then return res% = dll_call5("ResizeOutlook",POL%,width_client(0),height_client(0)-100,400,200) top 1002,height_client(0)-100 : width 1002,width_client(0) return cacher: if POL%=0 then return res% = dll_call2("OutlookVisibility",POL%,0) return montrer: if POL%=0 then return res% = dll_call2("OutlookVisibility",POL%,1) return montrer_cles: res% = dll_call1("GetAllKeysForKGF",handle(1102)) message text$(1102) clear 1102 return UserEvent: ' message "UserEvent: WPARAM="+right$("0000000"+hex$(USER_EVENT_WPARAM),8)+" LPARAM="+right$("0000000"+hex$(USER_EVENT_LPARAM),8) if bin_and(USER_EVENT_WPARAM,hex("FF000000"))=hex("13000000") : ' est-ce un USER_EVENT de Outlook ?
if bin_and(USER_EVENT_WPARAM,hex("00FF0000"))=hex("00010000") : ' est-ce une sélection de dossier ? Dossier% = USER_EVENT_LPARAM s$ = string$(200," ") Dossier% = dll_call6("GetOutlookInformation",POL%,1,0,adr(s$),0,0) : ' dossier% contient l'objet du dossier s$ = trim$(s$) text 1006,s$ message "Dossier choisi: "+s$ return end_if if bin_and(USER_EVENT_WPARAM,hex("00FF0000"))=hex("00020000") : ' est-ce une sélection de mail ? MailIndex% = USER_EVENT_LPARAM Sujet$ = string$(200," ") Expediteur$ = string$(200," ") Adresse$ = string$(200," ") MailChoisi% = dll_call6("GetOutlookInformation",POL%,2,USER_EVENT_LPARAM,adr(Sujet$),adr(Expediteur$),adr(Adresse$)) Sujet$ = trim$(Sujet$) Expediteur$ = trim$(Expediteur$) Adresse$ = trim$(Adresse$) text 1010,sujet$ message "Mail choisi: "+Sujet$+chr$(13)+chr$(10)+"De: "+Expediteur$+" Mail: "+Adresse$+chr$(13)+chr$(10)+" Objet mail="+str$(MailChoisi%) return end_if if bin_and(USER_EVENT_WPARAM,hex("00FF0000"))=hex("00030000") : ' est-ce une sélection de pièce jointe ? PieceIndex% = USER_EVENT_LPARAM s$ = string$(200," ") res% = dll_call6("GetOutlookInformation",POL%,3,PieceIndex%,adr(s$),0,0) s$ = trim$(s$) if message_confirmation_yes_no("Enregistrer la pièce jointe: "+s$)=1 s$ = file_extract_path$(param_value$(0))+s$ : ' extraire la pièce jointe dans le dossier du programme res% = dll_call4("ExtractOutlookAttachment",POL%,0,PieceIndex%,adr(s$)) if res%=0 message "Pièce jointe extraite dans:"+chr$(13)+chr$(10)+s$ else message "Erreur en extraction de pièce jointe" end_if end_if return end_if if bin_and(USER_EVENT_WPARAM,hex("00FF0000"))=hex("00040000") : ' est-ce une sélection de contact ? Contact% = USER_EVENT_LPARAM clear 1001 res% = dll_call3("GetOutlookContact",POL%,Contact%,handle(1001)) for i%=1 to count(1001) s$ = item_read$(1001,i%) if left$(s$,9)="FullName=" text 1008,mid$(s$,10,len(s$)) exit_for end_if next i% message text$(1001) return end_if
if bin_and(USER_EVENT_WPARAM,hex("00FF0000"))=hex("00050000") : ' est-ce une sélection de dossier dans le sélecteur des dossiers ? DossierChoisi% = USER_EVENT_LPARAM : ' USER_EVENT_LPARAM contient l'objet Dossier s$ = string$(200," ") res% = dll_call6("GetOutlookInformation",POL%,6,DossierChoisi%,adr(s$),0,0) s$ = trim$(s$) text 1061,s$ message "Dossier choisi: "+s$ return end_if
if bin_and(USER_EVENT_WPARAM,hex("00FF0000"))=hex("00060000") : ' est-ce une sélection de compte dans le sélecteur des comptes ? CompteParDefaut% = USER_EVENT_LPARAM : ' USER_EVENT_LPARAM contient l'objet Compte clear 1001 res% = dll_call6("GetOutlookInformation",POL%,8,CompteParDefaut%,handle(1001),0,0) s$ = text$(1001) message "Compte choisi: "+chr$(13)+chr$(10)+s$ for i%=1 to count(1001) s$ = item_read$(1001,i%) if left$(s$,10)="UserName=" s$ = mid$(s$,11,len(s$)) exit_for end_if next i% text 1012,s$ return end_if
if bin_and(USER_EVENT_WPARAM,hex("00FF0000"))=hex("00070000") : ' est-ce qu'on a reçu de nouveaux mails ? ' USER_EVENT_LPARAM contient le nombre de nouveaux mails ' message str$(USER_EVENT_LPARAM)+" nouveaux mails:"+chr$(13)+chr$(10)+text$(1102) if count(1102)>0 ' traiter les nouvaux mails while count(1102)>0 ' ici, traiter le mail dans item_read$(1102,1) mail% = val(item_read$(1102,1)) Sujet$ = string$(200," ") Expediteur$ = string$(200," ") Adresse$ = string$(200," ") res% = dll_call6("GetOutlookInformation",POL%,10,mail%,adr(Sujet$),adr(Expediteur$),adr(Adresse$)) Sujet$ = trim$(Sujet$) Expediteur$ = trim$(Expediteur$) Adresse$ = trim$(Adresse$) message "Mail reçu: "+Sujet$+chr$(13)+chr$(10)+"De: "+Expediteur$+" Mail: "+Adresse$+chr$(13)+chr$(10)+" Objet mail="+str$(MailChoisi%) ' et le supprimer de la liste item_delete 1102,1 end_while end_if return end_if
end_if return navigation_reception: if POL%=0 then return s$ = "Boîte de réception" res% = dll_call3("SelectOutlookFolder",POL%,adr(s$),1) return navigation_contacts_non: if POL%=0 then return res% = dll_call2("ShowOutlookContacts",POL%,0) return navigation_contacts_oui: if POL%=0 then return res% = dll_call2("ShowOutlookContacts",POL%,1) return navigation_dossier_oui: if POL%=0 then return res% = dll_call2("ShowOutlookFolderSelector",POL%,1) return navigation_dossier_non: if POL%=0 then return res% = dll_call2("ShowOutlookFolderSelector",POL%,0) return navigation_comptes_non: if POL%=0 then return res% = dll_call2("ShowOutlookAccounts",POL%,0) return navigation_comptes_Oui: if POL%=0 then return res% = dll_call2("ShowOutlookAccounts",POL%,1) return information_dossiers_1: if POL%=0 then return clear 1001 res% = dll_call3("GetOutlookFolderList",POL%,0,handle(1001)) message text$(1001) return
information_dossiers_2: if POL%=0 then return clear 1001 res% = dll_call3("GetOutlookFolderList",POL%,1,handle(1001)) message text$(1001) return
information_dossiers_3: if POL%=0 then return clear 1001 res% = dll_call3("GetOutlookFolderList",POL%,2,handle(1001)) message text$(1001) return information_comptes_1: if POL%=0 then return clear 1001 res% = dll_call3("GetOutlookAccountList",POL%,0,handle(1001)) message text$(1001) return
information_comptes_2: if POL%=0 then return clear 1001 res% = dll_call3("GetOutlookAccountList",POL%,1,handle(1001)) message text$(1001) return
information_comptes_3: if POL%=0 then return clear 1001 res% = dll_call3("GetOutlookAccountList",POL%,2,handle(1001)) message text$(1001) return
information_mails_1: clear 1001 res% = dll_call3("GetOutlookMailList",POL%,0,handle(1001)) message text$(1001) return
information_mails_2: if POL%=0 then return clear 1001 res% = dll_call3("GetOutlookMailList",POL%,1,handle(1001)) message text$(1001) return
information_mails_3: if POL%=0 then return clear 1001 res% = dll_call3("GetOutlookMailList",POL%,2,handle(1001)) message text$(1001) return information_mail1: if POL%=0 then return clear 1001 ' Pour la démo, on choisit le premier mail de la liste. ' Mais on pourrait prendre n'importe quel mail entre 1 et count(1001). res% = dll_call3("GetOutlookMailList",POL%,1,handle(1001)) mail% = val(item_read$(1001,1)) clear 1001 res% = dll_call3("GetOutlookMailInformation",POL%,mail%,handle(1001)) message text$(1001) return action_vider1: if POL%=0 then return clear 1001 res% = dll_call3("GetOutlookFolderList",POL%,2,handle(1001)) s1$ = "" for i%=1 to count(1001) if instr(item_read$(1001,i%),"Courrier indésirable")>0 s1$ = item_read$(1001,i%) exit_for end_if next i% i% = instr(s1$,",") if i%=0 message "Dossier non trouvé" return end_if dossier% = val(left$(s1$,i%-1)) s$ = mid$(s1$,i%+1,len(s1$)) if message_confirmation_yes_no("Voulez-vous vraiment vider le dossier <"+s$+"> ?")<>1 then return res% = dll_call2("EmptyOutlookFolder",POL%,dossier%) if res%<0 message "Erreur en vidant le dossier <"+s$+">" else message "Le dossier <"+s$+"> a été vidé." end_if return action_deplacer: if POL%=0 then return if MailChoisi%=0 message "Aucun mail choisi" return end_if if DossierChoisi%=0 message "Aucun dossier choisi" return end_if res% = dll_call3("MoveOutlookMail",POL%,MailChoisi%,DossierChoisi%) MailChoisi% = 0 return action_creer_mail_programme: if POL%=0 then return if contact%=0 message "Il faut choisir un contact d'abord !" return end_if ' préparer les pièces jointes clear 1101 item_add 1101,"KGF.ilb" : ' placer ici le nom d'un fichier des pièce jointe, ou laisser le mémo vide ' ... autant de lignes Attachment que nécessaires, une ligne par pièce jointe clear 1001 item_add 1001,"première ligne du mail" item_add 1001,"... placer ici le reste du mail" : ' autant de lignes que nécessaire... s$ = "Mail test généré par programme" : ' placer ici le sujet du mail ' contact% est l'objet contact sélectionné dans le sélecteur des contacts, retourné par USER_EVENT res% = dll_call6("SendOutlookMail",POL%,contact%,adr(s$),handle(1101),handle(1001),0) : ' le 0 signifie "pas de fenêtre Outlook de saisie mais envoi direct" message str$(res%) return
action_creer_mail_dialog: if POL%=0 then return if contact%=0 message "Il faut choisir un contact d'abord !" return end_if ' préparer les pièces jointes clear 1101 item_add 1101,"KGF.ilb" : ' placer ici le nom d'un fichier des pièce jointe, ou laisser le mémo vide ' ... autant de lignes Attachment que nécessaires, une ligne par pièce jointe clear 1001 item_add 1001,"première ligne du mail" item_add 1001,"... placer ici le reste du mail" : ' autant de lignes que nécessaire... s$ = "Mail test généré par programme" : ' placer ici le sujet du mail ' contact% est l'objet contact sélectionné dans le sélecteur des contacts, retourné par USER_EVENT res% = dll_call6("SendOutlookMail",POL%,contact%,adr(s$),handle(1101),handle(1001),1) : ' le signifie "fenêtre Outlook de saisie" if res%=0 message "Mail envoyé" else message "Erreur - mail non envoyé" end_if return action_chercher_contact_nom: if POL%=0 then return s$ = "Klaus" res% = dll_call2("GetOutlookContactByName",POL%,adr(s$)) return
action_chercher_contact_nom_suivant: if POL%=0 then return s$ = "Klaus" res% = dll_call3("GetNextOutlookContactByName",POL%,contact%,adr(s$)) return
Lors du traçage, le timer affiche des informations sur chaque mail analyse. D'abord, avant la vérification des dates et heures, le traçage affiche un message contenant: - Citation :
- Mail analysé: Dossier=nom du dossier
Mail testé: sujet du mail Reçu: date de réception Critère: date de comparaison (dernière dans de contrôle)
Si le mail analysé est trop ancien, le traçage affiche: - Citation :
- Ce mail est trop ancien: sujet du mail
puis arrête l'analyse. Si le mail est plus récent que la date de comparaison, le traçage affiche: - Citation :
- Ce mail est nouveau: sujet du mail
et le place dans une liste des mails à signaler à Panoramic par USER_EVENT A la fin de ce contrôle (lorsqu'on tombe sur le premier mail trop ancien), le timer signale la liste des mails trouvés à Panoramic (s'il y en a). Panoramic signale alors chaque mail dans cette liste. Note:Un mail reçu par Outlook après le lancement de l'interface n'est pas forcément détecté à la première tentative (premier déclenchement du timer). En effet, bien que déjà affiché dans la boite de réception de Outlook, le nouveau mail n'est pas encore forcément intégré dans ce que l'on appelle le "modèle DOM" de Outlook et est donc provisoirement invisible pour tout programme extérieur. Ce décalage est levé dès de deuxième déclenchement du timer après réception du mail par Outlook. Ce comportement est malheureusement inhérent à Outlook et impossible à contourner par un programme externe. | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Interface avec Outlook Jeu 4 Mar 2021 - 16:17 | |
| J'ai essayé ton programme. Je ne comprends pas pourquoi il n'affiche que les e-mails datant, pour le dernier, du 13/02/2021, alors que j'en reçois tous les jours ? A suivre... | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Dim 7 Mar 2021 - 15:31 | |
| Bonjour Klaus, bonjour à tous, J’ai installé OL2010 Fr pour effectuer des essais. Après avoir autorisé l'accès à Outlook par un programme tiers, le timer détecte bien l’arrivée des nouveaux messages "entre-temps". | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Dim 7 Mar 2021 - 17:55 | |
| Merci, Marc ! Tu me rassures ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Lun 8 Mar 2021 - 11:51 | |
| @Marc:
J'ai déposé une nouvelle version de l'interface Outlook sur mon site. L'apparition de la fenêtre de sécurité devrait maintenant être éliminée automatiquement. En effet, j'ai ajouté du code détectant cette fenêtre et cliquant automatiquement le bouton "Accepter".
Pourrais-tu me dire le résultat stp ? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Lun 8 Mar 2021 - 19:04 | |
| @Klaus
Afin de lever toute ambiguïté, de quelle fenêtre de sécurité s’agit-il ?
Autrement, j’ai remarqué qu’après avoir validé la fenêtre annonçant l’arrivée d’un nouveau mail, la liste de la boite de réception ne se met pas à jour automatiquement. Le nouveau mail ne s’affiche pas, ni en tête de liste, ni en queue. Je dois cliquer sur le dossier de réception pour qu’il apparaisse. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Lun 8 Mar 2021 - 23:43 | |
| Quelle fenêtre ? Celle-ci: - Citation :
- Autrement, j’ai remarqué qu’après avoir validé la fenêtre annonçant l’arrivée d’un nouveau mail, la liste de la boite de réception ne se met pas à jour automatiquement. Le nouveau mail ne s’affiche pas, ni en tête de liste, ni en queue. Je dois cliquer sur le dossier de réception pour qu’il apparaisse.
Oui, je sais. C'est intentionnel. L'opération de mise à jour de liste complète des mails est longue si'il y a beaucoup de mails dans le dossier de réception, ce sui est le cas chez moi. Mais je me rends compte que je pourrais simplement ajouter les nouveaux éléments à la liste déjà existante. Je n'y avais pas pensé. Je vais regarder cela. D'ailleurs, cette question ne se pose que si le dossier sélectionné à ce moment est la boite de réception ! | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Mar 9 Mar 2021 - 0:20 | |
| Non, je ne vois plus apparaître cette fenêtre. Son absence ne m’a pas frappé, je l’avais déjà oubliée ! Le fait d’avoir accepté une première fois l’accès au programme tiers, cette autorisation devient-elle permanente ? Auquel cas, il serait normal que je vois plus cette fenêtre. - Citation :
- D'ailleurs, cette question ne se pose que si le dossier sélectionné à ce moment est la boite de réception !
De fait ! Bien que je ne sois pas utilisateur d’un client mail, je me permets une suggestion : Lors d’un tri par date, à l’intérieur d’une date, les heures ne sont pas triées. Dans le cas de nombreux mails, peut-être serait-il opportun d’avoir ce « sous-tri » ? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Mar 9 Mar 2021 - 0:39 | |
| - Citation :
- Le fait d’avoir accepté une première fois l’accès au programme tiers, cette autorisation devient-elle permanente ?
Aucune idée ! Chez moi, ça ne se produit pas. D'après ce que je vois sur internet, l'autorisation donnée 1 fois n'est valable que pour la période de temps indiquée dans cette fenêtre, et par défaut, c'est 1 minute. Donc, si tu n'as plus ce problème, il est probable que mon ajout a fonctionné et supprime cette fenêtre dès sont apparition, puisque je cherche à la détecter toutes les 500 milli-secondes. - Citation :
- Dans le cas de nombreux mails, peut-être serait-il opportun d’avoir ce « sous-tri » ?
En effet ! Je vais voir comment je peux organiser cela. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Interface avec Outlook Mar 9 Mar 2021 - 0:46 | |
| Je viens de d’effectuer ce test : Dans le Centre de gestion de la confidentialité d’Outlook, rubrique Accès par programme, j’ai coché " Toujours m’avertir des activités douteuses." Puis, j’ai lancé l’interface avec la nouvelle dll (kgf.dll du 08/03/2021 11:45) et j’ai la fenêtre de sécurité qui est réapparue. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Interface avec Outlook Mar 9 Mar 2021 - 0:47 | |
| Et elle ne disparaît pas toute seule ? | |
| | | Contenu sponsorisé
| Sujet: Re: Interface avec Outlook | |
| |
| | | | Interface avec Outlook | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |