IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AppleScript Discussion :

Automatisation schéma conditionnel e-mail via apple script


Sujet :

AppleScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Par défaut Automatisation schéma conditionnel e-mail via apple script
    Bonjour à toute la communauté,

    Je suis novice en développement et malgré mes multiples tentatives, je ne parviens pas à faire ce que je souhaite. Cela peut sembler complexe de l'extérieur donc je vais essayer d'être assez clair.

    Il s'agit de faire apple script qui s'occuperait de rediriger les mails de façon automatique et conditionnelle (sachant que j'ai essayé avec les "règles" des applications Mail ou Thunderbird et cela n'est pas assez poussé).

    Le but de fond de ce schéma est l'automatisation d'attribution de missions (dans le cadre d'un projet que je développe de mon coté) à différents membres par l'intermédiaire d'e-mail.

    La succession de taches serait la suivante :

    1/ Un récapitulatif de mission est envoyé à tous les membres concernés par e-mail.

    2/ Réponse positive de la part d'un membre : Un membre répond a l'e-mail envoyé par un "oui". J'aimerais alors une réponse automatique lui disant que la mission lui est bien affectée.

    3/ Si d'autres membres répondent ensuite positivement à l'e-mail alors j'aimerais une réponse automatique leur disant que la mission est déjà affectée.

    Je ne sais pas si j'ai été assez clair mais si vous avez compris, j'aurais grandement besoin de votre aide..

    Merci beaucoup !

    Clément

  2. #2
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour et bienvenue,

    Tu as raison sur le fait que les règles Mail ne peuvent traiter ton besoin: Elles peuvent gérer chaque mail, mais pas les liens entre plusieurs mails.

    Ton problème est peut être un peu plus complexe qu'il ne semble. En effet, outre l'aspect technique, cela suppose:

    1
    Que l'ensemble des emails liés à une mission (la demande et les réponses) soit parfaitement identifiable.
    Une partie du titre du mail semble la meilleure façon d'identifier (une partie seulement car les réponses ajouteront un "Rép:" devant).
    Es-tu certain que cette identification soit fiable et suffisante ?
    Es-tu certain que 2 missions auront donc bien un titre différent pour éviter toute confusion ?
    (par exemple mettre un N° de mission unique ?)

    2
    Que tu gères, sur le Mac du Chef de Projet, une base de données contenant les informations nécessaires:
    - le nom / référence / N° de la mission : quelque chose qui permettent d'identifier à coup sûr la mission qui serve de titre d'email
    - le statut de la mission : pas répondu, ou accepté (sans doute tu auras besoin de savoir par qui !)

    3
    Que les réponses oui, non, soient sans ambiguïté: instruction donnée aux participants de répondre uniquement par oui ou non comme premier mot de leur texte.

    Ces 3 points, une fois éclaircis, permettront d'approcher une solution.

    On pourrait peut être éviter la base de donnée en demandant, chaque jour, au chef de projet de lancer un script qui regarde tous les messages pour décider d'envoyer, des accusés de réception.
    Cela implique que les messages de mission envoyés soit stockés dans une boite prédéfinie. Le script parcours cette boîte et recherche les réponses dans la boite de réception pour envoyer les accusés (positif pour le premier oui trouvé et négatifs pour les autres). Une fois les accusés envoyés les accusés sont déplacés vers une autre boite mail. Cette méthode est acceptable si et seulement si l'accusé ne doit pas être instantané et si le nombre de mission/réponse reste raisonnable. Sinon, le script devra balayer à chaque fois des centaines d'emails.
    Il implique aussi que si tu lance le script et qu'un retardataire envoie un "oui" plusieurs jours après, il faudrait trouver une méthode...

    La base de donnée peut se résumer à un simple fichier Excel.

    Enfin, j'ai une dernière question: qui rédige et envoie le mail de proposition de mission ? toi directement ou le script ?
    Cordialement

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Par défaut REP : PBELL
    Bonjour PBELL,

    Avant toute chose, un grand merci pour les réponses (et les questions) que tu m'apportes.

    1/
    Je compte utiliser sur mon site web un formulaire 123contactform qui a une option pour attribuer un numéro d'identifiant unique à chaque demande faite sur le formulaire (et donc à chaque mission). Lorsque la personne complète le formulaire, une copie de celui-ci est transmis par mail à mon adresse avec dans le champ objet un ID unique (sous cette forme : Ref: 123-1496827622).

    2/
    Pour la base de donnée, j'y ai pensé, malheureusement étant novice en programmation je pensais me tourner vers une solution plus "simple" comme les règles dans Mail/Thunderbird, malheureusement je me suis rendu compte que cela n'était pas possible comme tu me l'as confirmé.

    3/
    Comme tu le dis, les participants doivent suivre un process précis pour que le script remplisse ces conditions.

    4/
    Concernant ta question sur qui rédige le mail de proposition de mission, comme dit plus haut dans ce message le mail proviendra d'un formulaire 123contactform.

    Au vu de tout ce que tu me dis, je pense que la base de donnée (fichier excel ou autre) est la meilleure solution (la plus simple peut être ?).

    Si j'ai bien compris, il faudrait un script qui :

    D'une part :
    • Traite les e-mails entrants (uniquement ceux issus du formulaire) pour une boite de réception donnée.
    • Ajoute la mission à une base de donnée (un fichier excel).



    D'autre part
    • Traite les e-mails entrants (issus des participants qui accepte la mission).
    • Ajoute le nom du participant affecté à la mission à la base de donnée et lui envoie une réponse automatique de confirmation.
    • Répond automatiquement à un participant qui répond à une mission après que celle-ci ait déjà été affecté.


    Et du coup je suppose que ce script tournera en tache de fond sur le mac qui restera allumé en permanence ? (ce n'est pas un problème, juste pour être sur).

    Encore merci pour tes éléments de réponse,

    Clément

  4. #4
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour Clément,


    Pour rester simple et abordable, je propose de rester sur une base Excel.
    Il faut donc un fichier Excel contenant, pour chaque mission, 2 colonnes : le N° de référence en colonne A et l’email de la personne qui a accepté (si il y en a une) en B.


    La première colonne sera remplie lors de la demande. La première hypothèse qui vient à l’esprit est de te demander de remplir cette valeur lors d’une demande. C’est simple et direct !
    Cependant, Il est peut être aussi possible de :
    - lire ta boite de réception,
    - identifier un email provenant d’une boîte de réception prédéfinie « demandes » et d’extraire le titre
    - extraire de ce titre la partie N° Réf après le « Ref: »,
    - vérifier dans Excel si cette référence existe déjà, sinon, l’ajouter en fin de liste.
    - déplacer le mail vers un boite mail d’archive « traité » (ce qui évitera de retraiter ce mail ultérieurement !)


    La seconde colonne sera remplie par l’email émetteur d’un « oui » en réponse à un email dont le titre contient la référence à la première colonne.
    - le script lit la liste des N° réf du fichier Excel
    - le script recherche, dans la boite de réception, les emails reçus dont le titre contient un No Ref valide
    - si un mail est trouvé avec un texte débutant par « Non », le mail est déplacé dans la boite d’archive
    - si un mail est trouvé avec un texte débutant par « Oui », vérifier le fichier Excel si aucun email est déjà attribué. Si non, le fichier Excel est mis à jour avec l’adresse mail de l’émetteur en colonne 2 (pour la ligne No Ref), un accusé est envoyé, puis le mail est déplacé en boite d’archive. Si oui (et déjà attribué) un mail de non acceptation est renvoyé et le mail est déplacé en boîte archive.




    Donc le script sera lancé une ou plusieurs fois par jour (manuellement ou automatique par iCal à des heures précises). Je propose de le lancer manuellement, au moins au début.
    Le script doit connaître :
    - le nom et l’emplacement du fichier Excel (qui doit exister !) pour le lire et le mettre à jour
    - le nom de la boîte Mail « Demandes » qui doit être créée.
    - le nom de la boîte Mail « réponses » dédiée.
    - le nom de la boîte d’archive « traité » (qui doit être préalablement créer, lié au compte)




    Le Mac n’a pas besoin d’être allumé en permanence, mais seulement lorsque le script tournera.
    Avant le script ,les boîtes Mail de « demandes », « réponses » et « archive » pourront être pleines.
    Après le script, les boîtes « demandes » et « réponses » seront vides. Seules exceptions, des mails de « réponses » dont le titre ne correspond pas un un No Réf valide dans la base Excel: Ils seront à traiter/déplacer à la main !!


    J’ajoute enfin que faire tourner le script manuellement va limiter les risques dus aux restrictions de sécurité de OS X : en effet, le script va demander à Excel et Mail de faire des choses. Le système est de plus en plus strict sur ces demandes via un script, ce qui est une bonne chose en matière de sécurité (on y reviendra).


    Si cette description te convient (si je n’ai rien oublié), on a fait le plus dur !!!
    Si, si, d’expérience, poser le problème AVANT d’écrire du code rend l’étape suivante plus simple !!


    Cordialement

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Par défaut REP : PBELL
    Cher PBELL,

    Tu as vraiment bien cerné ce à quoi je pensais et je t'en remercie.

    1/ Concernant la colonne A

    En effet, je pourrais remplir manuellement le tableau. Cependant, l'idée est d'être assez réactif et d'automatiquement avoir la mission ajoutée dans le tableau. Tu sembles dire que cela est possible ?

    Dans ce cas il faudrait que l'objet du mail ne soit composé que du numéro de référence je suppose ? Ou le script peut repérer le n° de référence (qui contient un tiré) par lui meme ?

    2/ Concernant la colonne B

    Concernant le script relatif à cette colonne, tout me semble parfait.

    3/ Concernant les différentes boites mails

    Tu dis :
    " - le nom de la boîte Mail « Demandes » qui doit être créée.
    - le nom de la boîte Mail « réponses » dédiée.
    - le nom de la boîte d’archive « traité » "

    Cela veut dire qu'il faut une adresse mail spécifique pour recevoir les demandes de mission et une boite mail spécifique pour recevoir les réponses aux missions ?

    Concernant la boite d'archive, s'agit-il d'une boite mail indépendante ou simplement d'un sous-dossier à une boite mail existante ?

    Par ailleurs, question peut-être bête, mais qu'appelles-tu "nom de la boite Mail" ? S'agit-il de l'adresse mail ? Ou plutôt du nom donné à la boite dans l'application Mail ? Je ne sais pas quelle variable il faudra fournir au script.

    4/ Lancement du script

    Très bien pour commencer en manuel, dans ce cas et pourquoi pas par la suite avoir un script qui se déclenche toutes les 30 minutes ? Toutes les heures ? (je ne me rends pas compte des seuils de sécurité d'OSX).

    Par ailleurs, lors de mes tentatives avec les "règles" de Mail, il y avait une règle : Si telle condition est présente, alors déclencher un Apple Script. Ne pourrait-on pas se servir de cela pour déclencher le script de la colonne A dès qu'il y a un mail rentrant dans la boite mail "demande" et de déclencher le script de la colonne B dès qu'il y a un mail rentrant dans la boite mail "réponses".


    Voila je pense que l'on a fait le tour du problème, en tout cas vraiment super ! Je suis impatient de voir ca à l'oeuvre !!

    Cordialement,

    Clément

  6. #6
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir Clément,

    Pour la colonne A, il est possible (et plus simple pour l'utilisateur !) de lire les emails provenant de 123contactform, d'en extraire la référence et de l'ajouter automatiquement à la base, sur une nouvelle ligne.

    Pour les boites Mail, je n'ai pas été assez clair: Il s'agit dans Mail de définir des "Boites aux lettres", c'est à dire des sortes de dossiers qui se trouvent dans la liste des boîtes "sur mon Mac".
    Tu peux en créer autant que tu veux via le menu "Boîtes aux lettres / Nouvelle boîte aux lettres…" ou encore en cliquant sur le signe + qui apparaît dans la colonne de gauche de la fenêtre Mail, en face de "Sur mon Mac" quand la souris survole cette zone. Il s'agit bien de dossier/boite de rangement/tri. Il ne s'agit pas de comptes ou d'adresse emails.

    Tu dois faire des règles sur ta boîte de réception comme suit:
    Si le message peut être identifié comme venant de 123contactform (via son titre commençant par "Ref : ", et/ou par son adresse email,...ou tout autre moyen !), alors le placer dans la boîte Demandes
    Si le message peut être identifié avec un titre contenant "Rép : Ref :", alors le mail est déplacé vers la boîte Reponse.

    Cette méthode te permet d'affiner les critères de sélection des demandes et des réponses, sans changer le script. C'est plus souple.

    Quant à lancer le script à partir d'une règle, je me méfie car les lancements automatiques sont délicats et ne peuvent être faits sur un dossier d'une boîte mais sur toute la boîte de réception; on risque de traiter tous tes emails, y compris ceux ne traitant pas des missions !!

    Pour la fréquence de lancement, il m'est difficile de te conseiller car cela dépend du nombre de missions, de réponses (donc aussi du nombre de membres du project,...). Si il n'y a pas plus de 10 à 30 de demandes quotidiennes et pas plus de 30 à 60 réponses quotidiennes, il me semble qu'un lancement par jour doit suffire. Au delà le temps de traitement va s'allonger (sur mon Mac, 10 demandes sont traitées en 10 secondes environ !!).

    Donc sur cette base, voici le script complet. J'y ai mis beaucoup de commentaires pour que tu puisse bien le comprendre et ajuster ce qui doit l'être.
    Le script est testé et fonctionnel pour:
    1) les nouvelles demandes : c'est à dire les mails de la boîte "Demande", dont le titre commence par "Ref : ", suivi d'une référence (nombre ou texte !)
    2) les réponses: c'est à dire les mails de la boîte "Réponse", dont le titre contient "Ref : " et dont la suite du titre est une référence valide déjà rencontrée dans une demande
    - si le premier mot de la réponse est Oui, OUI ou oui, alors on vérifie sur la base Excel : selon ou non une assignation précédente, un email est envoyé avec un texte "Merci..." ou "Désolé..."
    - si la réponse n'est pas Oui, ou OUI, ou oui, alors on suppose que c'est non.
    Enfin tous les mails traités sont déplacés dans la boîte "Traités".
    Si un mail dans "Reponse" à un titre qui ne correspond pas à une référence valide de mission, il est laissé dans le boîte "Reponses" et doit être traité à la main.

    J'ai testé, je crois, tous les cas, en jouant aussi sur les adresses emails (j'ai plusieurs comptes).

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    -- gestion des mails de demandes et réponses : P_Bell 2017
    
    -- défini le chemin vers mon fichier Excel
    set Mon_Desktop to (path to desktop folder) as string
    set Base_Excel to Mon_Desktop & "tests:Base.xlsx"
    
    
    -- défini les boîtes Mail qui doivent exister dans Mail avec eactement le même nom
    set B_Demandes to "Test_Demandes"
    set B_Reponses to "Test_Réponses"
    set B_Traite to "Test_Traités"
    
    
    -- défini le début d'un mail de demande. Le No Réf de mission est ce qui suit
    set Debut_titre to "Ref : " -- attention aux espaces avant ou après les :
    
    
    -- défini les réponses d'accusé de reception accepté ou refusé (si qq a déjà répondu oui avant)
    set Message_OK to "Merci d'avoir accepté cette mission." & return & "Cordialement."
    set Message_Rejete to "Désolé, cette mission a déjà été acceptée." & return & "Cordialement."
    
    
    -- initialise les compteurs
    set Nb_Demande to 0
    set Nb_Reponse to 0
    set Nb_Accepte to 0
    
    
    -- ouvre le fichier Excel
    tell application "Microsoft Excel"
        try
    open file Base_Excel
        on error
            display alert "impossible d'ouvrir le fichier " & Base_Excel
            return
        end try
    activate
        set Nb_Base to count of rows of used range of active sheet-- lit le nombre de lignes sucessives
    end tell
    
    
    -- lit la boîte Mail B_Demande et traite les mail de demandes
    tell application "Mail"
        set M_Demande to every message of mailbox B_Demandes
        repeat with M in M_Demande-- parcours les emails
            set Titre to (subject of M) as string
            if (offset of Debut_titre in Titre) is 1 then -- c'est bien un email de demande !
                set Titre to rich text (1 + (length of Debut_titre)) thru -1 of Titre -- extrait le No de référence            
                set Nb_Base to Nb_Base + 1 -- incrémente le nombre de lignes dans la base
                tell application "Microsoft Excel" to set value of range ("A" & Nb_Base) of sheet 1 to Titre -- écrit la nouvelle demande dans le fichier Excel
                set Nb_Demande to Nb_Demande + 1 -- incrémente le nombre de demandes traitées
                set mailbox of M to mailbox B_Traite-- déplace le mail vers la boite traité
            end if
        end repeat -- mail suivant    
    end tell
    tell application "Microsoft Excel" to save-- enregistre  le fichier Excel
    
    
    
    
    -- lit la boîte Mail Réponses et traite les réponses
    tell application "Mail"
        set M_Reponses to every message of mailbox B_Reponses
        repeat with M in M_Reponses-- parcours les emails
            set Expediteur to sender of M
            set Titre to (subject of M) as string
            set WRep to first word of content of M-- extrait le premier mot de la réponse
            
    -- recherche si le titre est valide et si il existe dans la base Excel
            set Pos to offset of Debut_titre in Titre
            if Pos > 0 then -- le mail contient bien le texte de début de demande
                set NoRef to (rich text (Pos + (length of Debut_titre)) thru -1 of Titre) as string
                tell me to set Ligne to ChercheLigne(NoRef)
            else
                set Ligne to 0 -- le mail ne contient pas un titre valide !
            end if
            if Ligne > 0 then -- c'est une réponse valide correspondant à la ligne Ligne de la base Excel
                if WRep is in {"Oui", "oui", "OUI"} then -- réponse positive : on recherche la ligne dans Excel avec NoRef
                    tell application "Microsoft Excel" to set Assigne to value of range ("B" & Ligne) -- lit l'assignation de la mission
                    if Assigne = "" then --la mission n'est pas encore assignée
                        set Nb_Accepte to Nb_Accepte + 1
                        tell application "Microsoft Excel" to set value of range ("B" & Ligne) to Expediteur -- met le mail de l'exécutant
                        set Ma_reponse to Message_OK & return & return & content of M-- prepare la réponse OK accusé
                    else -- prépare la réponse que cette mission est déjà assignée
                        set Ma_reponse to Message_Rejete & return & return & content of M
                    end if
                    set M_Accuse to make new outgoing message with properties {visible:false, subject:subject of M, content:Ma_reponse}
                    tell M_Accuse to make new to recipient at end of to recipients with properties {address:Expediteur}
                    send M_Accuse
                end if -- réponse Oui
                set mailbox of M to mailbox B_Traite-- déplace le mail vers la boîte traité
                set Nb_Reponse to Nb_Reponse + 1 -- incrémente le compteur des réponses
            end if -- mail à traiter car titre valide (Ligne > 0)
        end repeat -- mail suivant    
        
    end tell
    tell application "Microsoft Excel" to close active workbook saving yes-- ferme le document Excel en sauvegardant
    
    
    -- récapitulatif de traitement
    activate-- pour mettre le script au premier plan
    display dialog "Traitement terminé: " & return & "Nb de nouvelle demandes = " & Nb_Demande & return & "Nb de réponses = " & Nb_Reponse & return & "Nb missions assignées = " & Nb_Accepte
    -- fin du script
    
    
    
    
    
    
    on ChercheLigne(NRef) -- recherche le N° de ligne où se situe NRef en colonne A. Renvoie 0 si pas trouvé, sinon N° de ligne
        tell application "Microsoft Excel"
            set I to 2 -- on démarre la recherche en ligne 2 car la 1 est une ligne d'entête
            repeat while (value of range ("A" & I) is not "") and (value of range ("A" & I) is not NRef)
                set I to I + 1
            end repeat
            if value of range ("A" & I) = "" then
                return 0
            else
                return I
            end if
        end tell
    end ChercheLigne
    Tu peux copier / coller ce script dans l'éditeur de script.
    Avant de le lancer, il faut corriger les premières lignes du script:

    1) l'emplacement et le nom du fichier Excel. Dans le script de test, je l'ai mis sur le bureau (desktop) dans un dossier tests, avec le nom Base.xlsx. Ce fichier doit exister. Au début, j'ai mis simplement une ligne 1 avec A1="référence mission" et B1="assigné à". Le script gère la base à partir de la ligne 2.

    2) il faut que tu crées tes 3 boîtes dans Mail et si nécessaire que tu corriges leur nom dans le script (variables B_Demandes, B_Reponses et B_Traite. Vérifie bien que les boîtes ont le même nom dans Mail et dans le script !

    3) corriger si nécessaire le début du titre de demande (qui sera aussi dans les réponses). Dans mon script c'est la variable Début_Titre qui est mise à "Ref : ". Par exemple, si tes mails de demande de 123contactform ont un titre type "Mission N°: xxxxxxx", alors il faut changer la variable Début_Titre pour "Mission N° : " (les espaces autour du : sont importants)

    4) éventuellement corriger les réponses type dans les variables Message_OK et Message_Rejete"

    Je te souhaite de bon tests !!

    Cordialement

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Par défaut
    Bonjour PBELL,

    Merci beaucoup pour ce retour très complet.

    Je vais faire des tests et revenir vers toi les prochains jours.

    Cordialement,

    Clément

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Par défaut REP : PBELL
    Bonjour PBELL,

    J'ai fait quelques test et ton script fonctionne à merveille. Je tenais donc à te remercier chaleureusement pour ce que tu as fait.

    En plus tes commentaires m'ont permis de mieux comprendre comment fonctionnait Apple Script !

    Nous avions parlé de la possibilité de lancer le script automatique à intervalles réguliers (par exemple toutes les heures). Je suppose qu'il faudrait un automator ou autre ?

    Cordialement,

    Clément

  9. #9
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonjour Clément
    J'espère effectivement que ce script te permettra de progresser dans la compréhension de l'Applescript. C'est bien le but de ce site.
    Tu pourras ainsi automatiser des tas de choses...

    Pour la partie automatique:
    Citation Envoyé par clemvray Voir le message
    Je suppose qu'il faudrait un automator ou autre ?
    Il est aussi simple de créer un évènement répétitif dans iCal et d'associer un script à cet evènement.

    Cordialement

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 6
    Par défaut REP : PBELL
    PBELL,

    C'est vrai qu'au vu que ce tu as fait, les possibilités sont infinies.

    Pour lancer le programme à intervalles réguliers :
    • Je l'ai inséré dans une app automator qui lance automatiquement le script à l'ouverture de l'app.
    • J'utilise Cronnix pour lancer à toutes les heures le programme.


    Ca a l'air de fonctionner de mon coté. Qu'en penses-tu ?

    Enfin, dernière petite question. A la fin du programme une boite de dialogue s'ouvre avec le nombre de demandes, de réponses, etc (ce qui est parfait pour avoir un recap). Je me demandais, dans l'hypothèse où le programme se répète en boucle (toutes les heures), est ce que cette boite de dialogue ne va pas bloquer la répétition ?

    Cordialement,

    Clément

  11. #11
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut
    Bonsoir Clément,
    Effectivement, les possibilités très grandes (infini, c'est vraiment beaucoup !).

    L'utilisation de Cronix est déconseillée par Apple depuis quelques années et je pense qu'un jour cela ne va plus fonctionner. Apple conseille d'utiliser les launch; mais c'est un peu plus ardu.
    C'est pourquoi je recommande en général un simple évènement répétitif à l'infini (là l'infini est limité au calendrier Apple mais plus sûrement à la vie de ton Mac !), dans iCal, qui lance le script. Même pas besoin d'Automator.
    L'avantage est que tout Mac dispose de iCal et que le changement d'horaire de l'événement est vraiment à la portée de tout utilisateur.

    En outre, j'aime la simplicité: dans ton cas, tu lances une application qui lance un script Automator, qui lance un script...Je préfère demander à iCal de lancer le script directement.

    Quant au dialogue de fin, il faut éventuellement le supprimer car il va vite énerver l'utilisateur du Mac toutes les heures.
    Cependant, il est possible aussi d'utiliser un paramètre "giving up after x" qui va automatiquement faire disparaître ce dialogue après x secondes.
    Il faut ajouter cette instruction à la fin de la ligne commençant par "display dialog". Mettre 3 secondes, cela devrait suffire.
    Ainsi, le dialogue sera affiché 3 secondes et disparaîtra ! .. Elle est pas belle la vie !!

    Cordialement

Discussions similaires

  1. l'envoie des mails via un script VB
    Par aefmaaradji dans le forum VBScript
    Réponses: 2
    Dernier message: 17/03/2011, 05h51
  2. Réponses: 1
    Dernier message: 01/02/2011, 10h35
  3. l'envoie des mails via un script asp
    Par aefmaaradji dans le forum ASP
    Réponses: 2
    Dernier message: 07/07/2010, 15h26
  4. Mail via script et "CDO.Message"
    Par breneliere dans le forum VBScript
    Réponses: 2
    Dernier message: 28/08/2008, 13h33
  5. Réponses: 1
    Dernier message: 28/04/2006, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo