IPB

Bienvenue invité ( Connexion | Inscription )

2 Pages V  < 1 2  
Reply to this topicStart new topic
> affichage des heures d'envoi des mails via AppleScript
Options
Zeltron54
posté 27 Oct 2022, 09:48
Message #31


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Bonjour,
Au vu de toutes tes demandes, j'ai fait un script qui te demande le nombre de jours et l'heure limite, puis qui ouvre "Numbers" qui met le résultat dans une feuille et à la fin qui tri par date

Cela pourra te donner des idées pour le faire
Tu auras le choix entre excel et numbers...

Code
display dialog "Nombre de jours pour la recherche ?" default answer "1095"
set MDate to (current date) - days * (text returned of result) -- défini date de recherche
display dialog "Début Heure de recherche ?" default answer "20"
set heurelimite to text returned of result
set monTexte to ""
set AppleScript's text item delimiters to {" "}
tell application "Numbers"
    activate
    set newClasseur to make new document at front
    tell the first table of the active sheet of document 1
        set the value of cell "a1" to "Le jour"
        set the value of cell "b1" to "La date"
        set the value of cell "c1" to "Heure envoi"
        set the value of cell "D1" to "Objet"
        set the value of cell "e1" to "Le destinataire"
    end tell
end tell
set ligne to 2
tell application "Mail"
    set maListe to (every message in sent mailbox whose date sent > MDate)
    repeat with unMessage in maListe
        set maDate to date sent of unMessage
        if hours of maDate ≥ heurelimite then
            set heure to hours of maDate
            set mesDestinataires to (address of recipients of unMessage) as rich text
            set ladate to (short date string of maDate)
            set madatetexte to maDate as string
            set lejour to text item 1 of madatetexte
            set objet to subject of unMessage
            
            tell application "Numbers"
                activate
                tell the first table of the active sheet of document 1
                    set the value of cell ("a" & ligne) to lejour
                    set the value of cell ("b" & ligne) to ladate
                    set the value of cell ("c" & ligne) to heure
                    set the value of cell ("d" & ligne) to objet
                    set the value of cell ("e" & ligne) to mesDestinataires
                    make new row
                end tell
                
            end tell
            set ligne to ligne + 1
            
        end if
    end repeat
end tell

tell application "Numbers"
    activate
    tell the first table of the active sheet of document 1
        sort by column "b" direction descending --in rows LaSelection
    end tell
end tell
tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
davdenice
posté 27 Oct 2022, 10:52
Message #32


Adepte de Macbidouille
*

Groupe : Membres
Messages : 130
Inscrit : 21 Jan 2007
Membre no 78 760



Citation (Zeltron54 @ 27 Oct 2022, 10:48) *
Bonjour,
Au vu de toutes tes demandes, j'ai fait un script qui te demande le nombre de jours et l'heure limite, puis qui ouvre "Numbers" qui met le résultat dans une feuille et à la fin qui tri par date

Cela pourra te donner des idées pour le faire
Tu auras le choix entre excel et numbers...

Code
display dialog "Nombre de jours pour la recherche ?" default answer "1095"
set MDate to (current date) - days * (text returned of result) -- défini date de recherche
display dialog "Début Heure de recherche ?" default answer "20"
set heurelimite to text returned of result
set monTexte to ""
set AppleScript's text item delimiters to {" "}
tell application "Numbers"
    activate
    set newClasseur to make new document at front
    tell the first table of the active sheet of document 1
        set the value of cell "a1" to "Le jour"
        set the value of cell "b1" to "La date"
        set the value of cell "c1" to "Heure envoi"
        set the value of cell "D1" to "Objet"
        set the value of cell "e1" to "Le destinataire"
    end tell
end tell
set ligne to 2
tell application "Mail"
    set maListe to (every message in sent mailbox whose date sent > MDate)
    repeat with unMessage in maListe
        set maDate to date sent of unMessage
        if hours of maDate ≥ heurelimite then
            set heure to hours of maDate
            set mesDestinataires to (address of recipients of unMessage) as rich text
            set ladate to (short date string of maDate)
            set madatetexte to maDate as string
            set lejour to text item 1 of madatetexte
            set objet to subject of unMessage
            
            tell application "Numbers"
                activate
                tell the first table of the active sheet of document 1
                    set the value of cell ("a" & ligne) to lejour
                    set the value of cell ("b" & ligne) to ladate
                    set the value of cell ("c" & ligne) to heure
                    set the value of cell ("d" & ligne) to objet
                    set the value of cell ("e" & ligne) to mesDestinataires
                    make new row
                end tell
                
            end tell
            set ligne to ligne + 1
            
        end if
    end repeat
end tell

tell application "Numbers"
    activate
    tell the first table of the active sheet of document 1
        sort by column "b" direction descending --in rows LaSelection
    end tell
end tell
tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell


Oh ! Merci ! c'est géant ce que tu as réalisé ohmy.gif

Merci beaucoup pour ton aide !!!

J'essaie d'obtenir l'affichage des minutes en plus des heures, mais je ne connais pas la formule. J'ai essayé de remplacer hours par time mais ce n'est pas ça. J'ai donc intercalé après les heures une colonne "minutes" pour palier au problème.



--------------------
Ancien matériel  possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.

Actuellement toujours chez  : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB.
Go to the top of the page
 
+Quote Post
Zeltron54
posté 27 Oct 2022, 11:26
Message #33


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Ok pour l'affichage heure minute seconde voilà le script modifié:

Code
display dialog "Nombre de jours pour la recherche ?" default answer "1095"
set MDate to (current date) - days * (text returned of result) -- défini hier comme date de recherche
display dialog "Début Heure de recherche ?" default answer "20"
set heurelimite to text returned of result
set monTexte to ""
set AppleScript's text item delimiters to {" "}
tell application "Numbers"
    activate
    set newClasseur to make new document at front
    tell the first table of the active sheet of document 1
        set the value of cell "a1" to "Le jour"
        set the value of cell "b1" to "La date"
        set the value of cell "c1" to "Heure envoi"
        set the value of cell "D1" to "Objet"
        set the value of cell "e1" to "Le destinataire"
    end tell
end tell
set ligne to 2
tell application "Mail"
    set maListe to (every message in sent mailbox whose date sent > MDate)
    repeat with unMessage in maListe
        set maDate to date sent of unMessage
        if hours of maDate ≥ heurelimite then
            set mesDestinataires to (address of recipients of unMessage) as rich text
            set Ladate to (short date string of maDate)
            set madatetexte to maDate as string
            set heure to last text item of madatetexte
            set lejour to text item 1 of madatetexte
            set objet to subject of unMessage
            
            tell application "Numbers"
                activate
                tell the first table of the active sheet of document 1
                    set the value of cell ("a" & ligne) to lejour
                    set the value of cell ("b" & ligne) to Ladate
                    set the value of cell ("c" & ligne) to heure
                    set the value of cell ("d" & ligne) to objet
                    set the value of cell ("e" & ligne) to mesDestinataires
                    make new row
                end tell
                
            end tell
            set ligne to ligne + 1
            
        end if
    end repeat
end tell

tell application "Numbers"
    activate
    tell the first table of the active sheet of document 1
        sort by column "b" direction descending --in rows LaSelection
    end tell
end tell
tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
PBell
posté 27 Oct 2022, 12:31
Message #34


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Merci pour la version Excel.
J'ai effectivement cherché sur le net et j'ai trouvé quelques sites indiquant que la commande "Paste Special" ne fonctionnait plus depuis Excel 2016. (voir ici Excel 2016 - Applescript broken)

Je doute que Microsoft ne corrige cela un jour, donc, la porte étant fermée, nous allons passer par la fenêtre tongue.gif

Pour ce faire, nous allons simuler la frappe clavier cmd v sur l'application Excel, comme si tu utilisais ces touches sur ton clavier.
L’inconvénient de cette méthode (pour les puristes, c'est du GUI scripting) est que tu ne dois pas interférer avant la fin du script, donc pas toucher le clavier.

Voici la nouvelle partie du script qui remplace les lignes situées après "Set the clipboard to monTexte":
CODE
tell application "Microsoft Excel"
    set monDoc to make new workbook -- create new workbook
    tell active sheet of monDoc
        activate
        select range "A1"
    end tell
end tell
tell application "System Events" to tell application process "Microsoft Excel" to keystroke "v" using command down


Cela devrait, cette fois, passer outre le bug Excel.

Quant à la question du tri, en principe les dates dans Excel peuvent être triées selon leurs valeurs et pas leur format d'affichage.
Cependant, c'est peut être une subtilité de la version 2016 sur Mac (pas sur Windows !)....
Il est aussi possible que les dates, dans tes préférences Mac ou Excel, soient au format mm/jj/aaaa (mois/jour/année) alors que Applescript te donne un format jj/mm/aaaa (inversion jour et mois - valide pour le format français).
Je sais que le Canada préconise un format différent (aaaa/mm/jj) justement pour éviter les confusion entre jj/mm/aaaa et mm/jj/aaaa

Il faut que tu vérifie tes préférences de gestion de dates (Apple Système Préférences et Excel).

Enfin, dernière hypothèse, c'est que ta conversion de date convertisse les dates en string dans Excel. Je n'ai jamais eu ce cas malgré des années sur Excel, mais....!!?
Donc je te suggère de faire d'abord le tri, puis la conversion de format de dd/mm/aaaa en format string.

Cordialement

PS: Je peux aussi essayer de compléter le script pour faire le tri par date dans Excel...ascendant ou descendant ?


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
davdenice
posté 27 Oct 2022, 13:02
Message #35


Adepte de Macbidouille
*

Groupe : Membres
Messages : 130
Inscrit : 21 Jan 2007
Membre no 78 760



Je ne sais quoi dire à part merci beaucoup pour toute cette aide 👍

Si possible dans l’ordre croissant ?

Mais perso si c’est possible d’utiliser Numbers je préfère, mais sinon c’est pas grave on reste sur Excel.
J’ai tenté de remplacer l’application « Mail » par Outlook ou Microsoft Outlook mais cela ne fonctionne pas.


--------------------
Ancien matériel  possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.

Actuellement toujours chez  : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB.
Go to the top of the page
 
+Quote Post
PBell
posté 27 Oct 2022, 13:45
Message #36


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Pour le tri Excel, il semble que ici encore, Microsoft n'ai pas été très bon sur le dictionnaire Applescript...Il y a bien des objets "sort" et une fonction "add sortfield" mais qui ne semble pas fonctionner correctement... donc impasse !

Si tu préfère Numbers, désolé, je n'utilise que Excel. Mais Zeltron a fourni aujourd'hui une version avec Numbers.

Quant au changement de Mail par Outlook, c'est la première partie du script.
Il faut savoir que chaque application dispose de son propre dictionnaire de commandes scriptables: les commandes Mail sont très différentes de celles de Outlook.
En conséquence, il ne suffit pas de changer "Mail" par "Outlook", il faut ré-écrire les instructions qui permettent de récupérer et filtrer les emails en utilisant le dictionnaire Outlook.

Cordialement


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
Zeltron54
posté 27 Oct 2022, 14:08
Message #37


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Je t'ai réécris le script, en évitant de l'écrire ligne par ligne, mais en créant (comme PBell) un fichier "emails_envoyés.txt" sur le breau, puis en l'important dans numbers et le trier par date du plus récent au plus ancien si tu veux le contraire il faut remplacer "descending" par "ascending".
Ce script sera plus rapide.
Tu auras le fichier texte sur le bureau et une page dans numbers.

Code
display dialog "Nombre de jours pour la recherche ?" default answer "1095"
set MDate to (current date) - days * (text returned of result) -- défini hier comme date de recherche
display dialog "Début Heure de recherche ?" default answer "20"
set heurelimite to text returned of result
set monTexte to ""
set AppleScript's text item delimiters to {" "}

tell application "Mail"
    set maListe to (every message in sent mailbox whose date sent > MDate)
    repeat with unMessage in maListe
        set maDate to date sent of unMessage
        if hours of maDate ≥ heurelimite then
            set mesDestinataires to (address of recipients of unMessage) as rich text
            set Ladate to (short date string of maDate)
            set madatetexte to maDate as string
            set heure to last text item of madatetexte
            set lejour to text item 1 of madatetexte
            set objet to subject of unMessage
            
            set monTexte to monTexte & lejour & tab & Ladate & tab & heure & tab & objet & tab & mesDestinataires & tab & return
        end if
    end repeat
end tell

set Fichier_Log to (((path to desktop) as text) & "emails_envoyés.txt")
try
    do shell script "touch " & (quoted form of (POSIX path of Fichier_Log))
    do shell script "echo " & (quoted form of monTexte) & " >> " & (quoted form of (POSIX path of Fichier_Log))
end try
set chemin to (path to desktop folder as text) & "emails_envoyés.txt" as alias
tell application "Numbers"
    activate
    open chemin
    tell the first table of the active sheet of document 1
                set format of column "B" to date and time
        sort by column "b" direction descending --in rows LaSelection
    end tell
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell


Ce message a été modifié par Zeltron54 - 27 Oct 2022, 14:32.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
davdenice
posté 27 Oct 2022, 15:56
Message #38


Adepte de Macbidouille
*

Groupe : Membres
Messages : 130
Inscrit : 21 Jan 2007
Membre no 78 760



Citation (PBell @ 27 Oct 2022, 14:45) *
Pour le tri Excel, il semble que ici encore, Microsoft n'ai pas été très bon sur le dictionnaire Applescript...Il y a bien des objets "sort" et une fonction "add sortfield" mais qui ne semble pas fonctionner correctement... donc impasse !

Si tu préfère Numbers, désolé, je n'utilise que Excel. Mais Zeltron a fourni aujourd'hui une version avec Numbers.

Quant au changement de Mail par Outlook, c'est la première partie du script.
Il faut savoir que chaque application dispose de son propre dictionnaire de commandes scriptables: les commandes Mail sont très différentes de celles de Outlook.
En conséquence, il ne suffit pas de changer "Mail" par "Outlook", il faut ré-écrire les instructions qui permettent de récupérer et filtrer les emails en utilisant le dictionnaire Outlook.

Cordialement


Merci beaucoup pour tes précieuses précisions.


--------------------
Ancien matériel  possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.

Actuellement toujours chez  : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB.
Go to the top of the page
 
+Quote Post
davdenice
posté 27 Oct 2022, 16:33
Message #39


Adepte de Macbidouille
*

Groupe : Membres
Messages : 130
Inscrit : 21 Jan 2007
Membre no 78 760



Citation (Zeltron54 @ 27 Oct 2022, 15:08) *
Je t'ai réécris le script, en évitant de l'écrire ligne par ligne, mais en créant (comme PBell) un fichier "emails_envoyés.txt" sur le breau, puis en l'important dans numbers et le trier par date du plus récent au plus ancien si tu veux le contraire il faut remplacer "descending" par "ascending".
Ce script sera plus rapide.
Tu auras le fichier texte sur le bureau et une page dans numbers.

Code
display dialog "Nombre de jours pour la recherche ?" default answer "1095"
set MDate to (current date) - days * (text returned of result) -- défini hier comme date de recherche
display dialog "Début Heure de recherche ?" default answer "20"
set heurelimite to text returned of result
set monTexte to ""
set AppleScript's text item delimiters to {" "}

tell application "Mail"
    set maListe to (every message in sent mailbox whose date sent > MDate)
    repeat with unMessage in maListe
        set maDate to date sent of unMessage
        if hours of maDate ≥ heurelimite then
            set mesDestinataires to (address of recipients of unMessage) as rich text
            set Ladate to (short date string of maDate)
            set madatetexte to maDate as string
            set heure to last text item of madatetexte
            set lejour to text item 1 of madatetexte
            set objet to subject of unMessage
            
            set monTexte to monTexte & lejour & tab & Ladate & tab & heure & tab & objet & tab & mesDestinataires & tab & return
        end if
    end repeat
end tell

set Fichier_Log to (((path to desktop) as text) & "emails_envoyés.txt")
try
    do shell script "touch " & (quoted form of (POSIX path of Fichier_Log))
    do shell script "echo " & (quoted form of monTexte) & " >> " & (quoted form of (POSIX path of Fichier_Log))
end try
set chemin to (path to desktop folder as text) & "emails_envoyés.txt" as alias
tell application "Numbers"
    activate
    open chemin
    tell the first table of the active sheet of document 1
                set format of column "B" to date and time
        sort by column "b" direction descending --in rows LaSelection
    end tell
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell


Merci beaucoup pour ce script ! c'est top !
Là je télécharge 15 Go de mails, heureusement que j'ai la fibre, et hâte de tester tout ça !


--------------------
Ancien matériel  possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.

Actuellement toujours chez  : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB.
Go to the top of the page
 
+Quote Post
PBell
posté 27 Oct 2022, 17:39
Message #40


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



@ Zeltron,
Juste une dernière précision pour la gestion de l'heure: tu peux utiliser la fonction "time string", équivalente pour le temps à la fonction "short date string" pour la date.

Ainsi l'instruction:
CODE
set monTexte to monTexte & (short date string of maDate) & tab & (time string of maDate) & tab & subject of unMessage & tab & mesDestinataires & return


te donnera directement la date jj/mm/aaaa en colonne A, et hh:mm:ss en colonne B avec une vraie valeur de temps dans Excel (et je suppose dans Numbers).
C'est le cas avec la fonction copié/collé, et cela devrait aussi fonctionner avec le fichier txt.


Si, de plus, tu supprimes le caractère tab entre la date et le temps, le tout sera collé dans Excel sous un véritable format de date/time complet,...donc plus simple pour le tri que des colonnes dates et temps séparées.

Cordialement

Ce message a été modifié par PBell - 27 Oct 2022, 17:42.


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
Zeltron54
posté 27 Oct 2022, 19:52
Message #41


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



@ PBell

Merci pour l'info "time string" je ne connaissais pas !

Mais bon, à l'importation dans numbers du fichier texte je formate la colonne B en date, puis je tri sur la date !
Le "time" est en colonne C et reste au format texte! Il me semble qu'il avait demandé de mettre les heures et minute dans une colonne séparée.

En le faisant ligne par ligne numbers le reconnaissait comme date mes le traitement était beaucoup trop long...

S'il a besoin de changer il fera la demande ! biggrin.gif

Encore merci pour toutes ces infos !
Bonne soirée.

Ce message a été modifié par Zeltron54 - 27 Oct 2022, 19:55.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
davdenice
posté 27 Oct 2022, 20:00
Message #42


Adepte de Macbidouille
*

Groupe : Membres
Messages : 130
Inscrit : 21 Jan 2007
Membre no 78 760



Une dernière question :

si je veux afficher non seulement les messages envoyés mais également ceux reçus, je dois modifier quoi dans le code ?
J'ai essayé mailbox tout court, all mailbox, en remplacement de sent mailbox, mais j'ai des messages d'erreur.


--------------------
Ancien matériel  possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.

Actuellement toujours chez  : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB.
Go to the top of the page
 
+Quote Post
Zeltron54
posté 27 Oct 2022, 20:57
Message #43


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Bonsoir,

J'ai ajouter dans le code l'affichage dans le fichier numbers d'une ligne de titre !
le nouveau code:
Code
display dialog "Nombre de jours pour la recherche ?" default answer "1095"
set MDate to (current date) - days * (text returned of result) -- défini hier comme date de recherche
display dialog "Début Heure de recherche ?" default answer "20"
set heurelimite to text returned of result
set monTexte to "Le jour" & tab & "La date" & tab & "Heure d'envoi" & tab & "Objet " & tab & " Le destinataire" & return
set AppleScript's text item delimiters to {" "}

tell application "Mail"
    set maListe to (every message in sent mailbox whose date sent > MDate)
    repeat with unMessage in maListe
        set maDate to date sent of unMessage
        if hours of maDate ≥ heurelimite then
            set mesDestinataires to (address of recipients of unMessage) as rich text
            set Ladate to (short date string of maDate)
            set madatetexte to maDate as string
            set heure to last text item of madatetexte
            set lejour to text item 1 of madatetexte
            set objet to subject of unMessage
            
            set monTexte to monTexte & lejour & tab & Ladate & tab & heure & tab & objet & tab & mesDestinataires & tab & return
        end if
    end repeat
end tell

set Fichier_Log to (((path to desktop) as text) & "emails_envoyés.txt")
try
    do shell script "touch " & (quoted form of (POSIX path of Fichier_Log))
    do shell script "echo " & (quoted form of monTexte) & " >> " & (quoted form of (POSIX path of Fichier_Log))
end try
set chemin to (path to desktop folder as text) & "emails_envoyés.txt" as alias
tell application "Numbers"
    activate
    open chemin
    tell the first table of the active sheet of document 1
        set format of column "B" to date and time
        sort by column "b" direction descending --remplacer decending par ascending pour tri inverse
    end tell
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell


Pour faire la même chose sur la boite de réception le code devient:

Code
display dialog "Nombre de jours pour la recherche ?" default answer "1095"
set MDate to (current date) - days * (text returned of result) -- défini hier comme date de recherche
display dialog "Début Heure de recherche ?" default answer "20"
set heurelimite to text returned of result
set monTexte to "Le jour" & tab & "La date" & tab & "Heure de réception" & tab & "Objet " & tab & "Expéditeur" & return
set AppleScript's text item delimiters to {" "}

tell application "Mail"
    set maListe to (every message in inbox whose date received > MDate)
    repeat with unMessage in maListe
        set maDate to date received of unMessage
        if hours of maDate ≥ heurelimite then
            set mesDestinataires to (sender of unMessage) as rich text
            set Ladate to (short date string of maDate)
            set madatetexte to maDate as string
            set heure to last text item of madatetexte
            set lejour to text item 1 of madatetexte
            set objet to subject of unMessage
            
            set monTexte to monTexte & lejour & tab & Ladate & tab & heure & tab & objet & tab & mesDestinataires & tab & return
        end if
    end repeat
end tell

set Fichier_Log to (((path to desktop) as text) & "emails_recus.txt")
try
    do shell script "touch " & (quoted form of (POSIX path of Fichier_Log))
    do shell script "echo " & (quoted form of monTexte) & " >> " & (quoted form of (POSIX path of Fichier_Log))
end try
set chemin to (path to desktop folder as text) & "emails_recus.txt" as alias
tell application "Numbers"
    activate
    open chemin
    tell the first table of the active sheet of document 1
        set format of column "B" to date and time
        sort by column "b" direction descending --remplacer decending par ascending pour tri inverse
    end tell
end tell

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell


Dis moi si cela fonctionne comme tu veux !

Ce message a été modifié par Zeltron54 - 27 Oct 2022, 20:58.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
davdenice
posté 31 Oct 2022, 18:32
Message #44


Adepte de Macbidouille
*

Groupe : Membres
Messages : 130
Inscrit : 21 Jan 2007
Membre no 78 760



Hello,

Pour le script qui affiche les messages de la boite de réception, j'ai un message d'erreur :

Code
error "Erreur dans Mail : Délai dépassé pour un AppleEvent." number -1712


--------------------
Ancien matériel  possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.

Actuellement toujours chez  : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB.
Go to the top of the page
 
+Quote Post
Zeltron54
posté 31 Oct 2022, 18:40
Message #45


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Je ne vois pas !
Je viens de retester chez moi, pas de message d'erreur !


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
davdenice
posté 31 Oct 2022, 20:00
Message #46


Adepte de Macbidouille
*

Groupe : Membres
Messages : 130
Inscrit : 21 Jan 2007
Membre no 78 760



Merci pour tes tests.
J'ai essayé avec 4000 jours et 5000 jours, j'ai un message d'erreur, mais bon c est pas grave.

Serait-il possible d'avoir un script qui me sorte une feuille number incluant tous les mails reçus et envoyés par Mail depuis le 01/04/2010 ?

Avec une colonne indiquant expéditeur et une colonne indiquant destinataire ?

Je n'arrive pas à fusionner tes 2 scripts pour en faire 1 seul : je colle donc le premier tableau dans le second , mais je suis obligé de colorier le texte des mail expédiés en rouge pour les différencier.


--------------------
Ancien matériel  possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.

Actuellement toujours chez  : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB.
Go to the top of the page
 
+Quote Post
Zeltron54
posté 31 Oct 2022, 20:43
Message #47


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Pour le message d'erreur,

Lorsque le script à terminé il met une boite de dialogue avec ""waouou ... Ca y est c'est fait !".
Il faut que tu fermes ce dialogue dans les 2 minutes sinon une erreur est générée car le temps d'attente est trop long. (cela ne change en rien le résultat)

Pour réunir les sortie des messages envoyés et des messages reçus,

Après l'exécution des 2 scripts tu as donc une fenêtre numbers avec les messages envoyés et une fenêtre avec les messages reçus.

Il devrait suffire de mettre les messages envoyés dans la même fenêtre que les messages reçu et ça dans une deuxième feuille.
Une feuille pour les envoyés et une feuille pour les reçus.
Pour faire cela cliquer sur l'onglet de la feuille --> copier la feuille,.... aller sur l'autre fenêtre, un clic sur l'onglet de la feuille--> coller la feuille, une deuxième feuille est créée automatiquement.
Tu auras tout dans le même document...

EDIT: n'oublies pas de supprimer les fichiers texte qui sont sur le bureau, avant une deuxième utilisation des scripts !

EDIT 2 : pour éviter le message d'erreur créé par le temps d'attente trop long de la fenêtre de fin du travail, tu remplaces la ligne :

Code
(display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})

par :
Code
display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"} giving up after 120

Qui ferme le dialogue après 2 minutes.

Ce message a été modifié par Zeltron54 - 1 Nov 2022, 11:19.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
davdenice
posté 2 Nov 2022, 18:51
Message #48


Adepte de Macbidouille
*

Groupe : Membres
Messages : 130
Inscrit : 21 Jan 2007
Membre no 78 760



Bonjour,

J'arrive à récupérer une feuille Numbers contenant des emails envoyés.

Est-ce possible d'écrire un script qui filtre cette feuille Numbers en fonction de certains termes ? Par exemple, dans le script j'écris "coco@<spam>" et ça supprime la ligne où "coco@<spam>" figure ?

Merci.

Sinon, j'ai un problème : j'ai importé dans mail la boîte mail de 15 go dont je désirais extraire les emails envoyés.

Or, depuis que j'ai ajouté ce nouveau compte dans mail, plus aucun script ne fonctionne, j'ai toujours des messages d'erreur sad.gif

Même les tous premiers scripts que vous m'avez généreusement offert ne renvoient des messages d'erreur sad.gif

Est-ce du à un volume trop important de données à traiter ?

Merci pour votre aide.

Le message qui s'affiche avec tous vos scripts est :

"Délai dépassé pour un Apple Event"

Le problème viendrait de Mail qui ne peut pas gérer trop d'e-mails ?

J'ai aussi la suite Office sur mon Mac, pensez-vous qu'utiliser un script qui interroge Outlook et qui renvoie une réponse sous forme de feuille Excel sera plus fiable ?

Ce message a été modifié par davdenice - 2 Nov 2022, 19:46.
Fichier(s) joint(s)
Fichier joint  Capture_d_____cran_2022_11_02____19.03.22.png ( 42.45 Ko ) Nombre de téléchargements : 4
 


--------------------
Ancien matériel  possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.

Actuellement toujours chez  : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB.
Go to the top of the page
 
+Quote Post
Zeltron54
posté 2 Nov 2022, 20:23
Message #49


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Citation
Est-ce possible d'écrire un script qui filtre cette feuille Numbers en fonction de certains termes ? Par exemple, dans le script j'écris "coco@<spam>" et ça supprime la ligne où "coco@<spam>" figure ?


Il serait plus simple de saisir le terme à filtrer dans le script de recherche des mails pour ne pas les inclure dans le texte de sortie et donc de la feuille numbers.

Pour ton message d'erreur, rien à voir avec le nombre de mails, la recherche se faisant sur la boite du compte par défaut, je suppose que le script cherche une boite d'envoi "sent mailbox" sans la trouver et fini par te mettre ce message.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post
davdenice
posté 3 Nov 2022, 00:58
Message #50


Adepte de Macbidouille
*

Groupe : Membres
Messages : 130
Inscrit : 21 Jan 2007
Membre no 78 760



Citation (Zeltron54 @ 2 Nov 2022, 20:23) *
Citation
Est-ce possible d'écrire un script qui filtre cette feuille Numbers en fonction de certains termes ? Par exemple, dans le script j'écris "coco@<spam>" et ça supprime la ligne où "coco@<spam>" figure ?


Il serait plus simple de saisir le terme à filtrer dans le script de recherche des mails pour ne pas les inclure dans le texte de sortie et donc de la feuille numbers.

Pour ton message d'erreur, rien à voir avec le nombre de mails, la recherche se faisant sur la boite du compte par défaut, je suppose que le script cherche une boite d'envoi "sent mailbox" sans la trouver et fini par te mettre ce message.


Ok, c'est bon, j'ai fait une recherche boite d'envoi par boite d'envoi, je devais les spécifier sinon le script ne trouvait rien. Merci beaucoup.


--------------------
Ancien matériel  possedé : MacBook noir Core 2 Duo 2 gHz RAM 4GB HD 500GB, MacBook blanc Core 2 Duo 2,2 gHz RAM 4GB SSD 128GB, iPod Mini Alu 4GB, iPhone 3G Black 16GB, Elgato EyeTV, Elgato Turbo.264, iPhone 4 16GB , Phone 4S 16GB, iPhone SE 32GB, HD externe LaCie 120GB.

Actuellement toujours chez  : MacBook Air M1 8GB RAM 256GB SSD gris sidéral, iPad 9 64 GB gris sidéral, iPhone 11 64GB jaune, Apple Watch SE 2020, Apple TV 4K, SSD externe Crucial 1TB.
Go to the top of the page
 
+Quote Post
Zeltron54
posté 3 Nov 2022, 07:51
Message #51


Adepte de Macbidouille
*

Groupe : Membres
Messages : 171
Inscrit : 15 Mar 2008
Lieu : Lorraine
Membre no 110 156



Bonjour,

Ok pour l'erreur !

Pour les filtres, dis moi si il faut inclure dans le script, sinon tu as la possibilité dans Numbers de filtrer ...
sélectionner la colonne "Le Destinataire" puis En haut à droite --> organiser, -->Filtrer --> ajouter un filtre --> "le destinataire" --> Texte --> ne contient pas --> tu entres ton texte à filtrer...

Ce message a été modifié par Zeltron54 - 3 Nov 2022, 14:21.


--------------------
Imac 27 I7 Fusion drive fin 2013 Ram 8Go Mac OS X (10.14.6)
MacBook Pro 15 pouces mi-2012 8Go Ram Mac OS X (10.14.6)
Imac 24 M3 2023 Ram 24Go macOS Sonoma 14.3
Go to the top of the page
 
+Quote Post

2 Pages V  < 1 2
Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 27th April 2024 - 22:38