IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Extraire un mail et le placer dans carnet d'adresse :), Apple Script ?
Options
MRIC
posté 1 Oct 2019, 13:05
Message #1


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 653
Inscrit : 20 Jul 2003
Lieu : Uchaud (30) - Montpellier (34)
Membre no 8 684



Bonjour àt ous,
j'ia besoin d'un pro de l'Apple Script biggrin.gif

Soit 3600 mails environs,
qui contiennent des champs (dans le corps du mail) :

Nom : xxx
Prénom : xxx
Mail : xxxx

Qui serait me dire si on peut faire un apple script (via une règle dans mail) qui place les xxx
dans les bonnes cases du carnet d'adresse Mac ...

Merci d'avance,


--------------------
Go to the top of the page
 
+Quote Post
PBell
posté 1 Oct 2019, 17:06
Message #2


Adepte de Macbidouille
*

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



Bonsoir Mric,
Le script ci-dessous devrait fonctionner sur les emails de ton application MAIL qui sont sélectionnés.

Je te conseille de le tester en sélectionnant un ou 2 emails et en vérifiant que les contacts correspondants sont bien créés.
Tu pourras ensuite sélectionner des blocs d'emails.
Cela fonctionne chez moi, mais nous n'avons sûrement pas les mêmes versions de Contacts, de Mail et et d'OS.

Je ne te conseille pas de sélectionner 1000 emails d'un coup car tu ne verra pas où en est le script et cela peut durer un certain temps.

Enfin, j'ai ajouté plein de commentaires pour faciliter les adaptations que tu pourrais faire.

CODE
tell application "Mail"
    set MesEmails to selection --tous les emails sélectionnés sont traités
    repeat with unMail in MesEmails -- boucle sur chaque email
        get content of unMail
        set MonTexte to get content of unMail
        set lignes to paragraphs of MonTexte -- converti le contenu en pragraphes
        set Nom to ""
        set Prenom to ""
        set aMail to ""
        repeat with Rligne in lignes -- boucle sur chaque ligne du message
            set uneligne to Rligne as string -- converti le rich text en text simple
            -- test si la ligne debute par l'un des 3 cas, et si oui, copie le texte qui suit dans la variable
            if uneligne starts with "Nom : " then set Nom to rich text 7 thru -1 of uneligne
            if uneligne starts with "Prénom : " then set Prenom to rich text 10 thru -1 of uneligne
            if uneligne starts with "Mail : " then set aMail to rich text 8 thru -1 of uneligne
        end repeat
        if (Nom is not "") and (Prenom is not "") and (aMail is not "") then -- verifie que les 3 valuer sont trouvees (nom, prenom, mail)    
            tell application "Contacts"
                set MonContact to make new person with properties {last name:Nom, first name:Prenom} -- cree le contact
                tell MonContact
                    make new email at end of emails with properties {label:"home", value:aMail} -- ajout son email
                    save -- enregistre
                end tell -- creation contact
            end tell -- application Contacts
        end if -- si contact valide trouve
    end repeat -- email suivant
end tell


Enfin je précise, pour les experts, que ce script peut être amélioré par l'utilisation de fonctions grep/sed pour chercher/extraire les noms, prénoms et emails and le texte.

Cordialement


--------------------
iMac 27 i7 2,8GHz 8Go/1To 10.6.8 /10.10 / 10.11
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
Jaypee
posté 1 Oct 2019, 17:28
Message #3


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 417
Inscrit : 29 Aug 2002
Membre no 3 340



MRIC,

La procédure habituelle est de partir de l'éditeur de script dans le dossier Applications/Utilitaires, puis dans le menu de l'éditeur "Ouvrir le dictionnaire", et on sélectionne alors l'application Mail. Et l'éditeur affiche les différents points d'entrée.

Il y a plusieurs points à résoudre :
1) Ouvrir une BAL en particulier
2) énumérer les messages de la BAL et pour chacun d'eux...
3) extraire le contenu et le traiter. Pour cela, il faut utiliser le dictionnaire de l'application Contacts pour créer ou modifier un contact.

@+JP
Go to the top of the page
 
+Quote Post
MRIC
posté 2 Oct 2019, 04:22
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 1 653
Inscrit : 20 Jul 2003
Lieu : Uchaud (30) - Montpellier (34)
Membre no 8 684



Merci je vais regarder ceci smile.gif

J'ai vraiment du mal avec ce langage, dommage car il a l'air puissant et pratique


--------------------
Go to the top of the page
 
+Quote Post

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 : 6th April 2020 - 15:45