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 :

Comment lancer un script pour Outlook 2016 Mac


Sujet :

AppleScript

  1. #21
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    603
    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 : 603
    Points : 1 240
    Points
    1 240
    Par défaut
    La ligne en question ne faisait, comme tu l'as demandé, que retirer l'extraction des emails dans le corps des emails.

    Le script donne effectivement les adresses des mails avec leur destinataires , direct, en copie ou en copie confidentielle.
    Je n'avais pas compris que tu voulais aussi les adresses d'expéditeur.

    En principe, ajouter la ligne ci-dessous, devrait ajouter l'expéditeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set end of mesAdr to (address of (sender of item I of maListe))
    Il faut l'ajouter juste après la ligne "end repeat".

    Cordialement

  2. #22
    Futur Membre du Club
    Homme Profil pro
    Fabricant produits cosmétiques
    Inscrit en
    Novembre 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Fabricant produits cosmétiques

    Informations forums :
    Inscription : Novembre 2019
    Messages : 25
    Points : 6
    Points
    6
    Par défaut
    Bonjour PBELL

    J'ai réussis à récupérer 13 000 adresses mails uniques sur 35 000 mails envoyés ( en supprimant les doublons )
    On écrit souvent aux mêmes personnes mais le ratio me parait un peu faible...

    Pour pouvoir extraire les adresses mail des éléments reçus, j'ai donc ajouté ta ligne :
    set end of mesAdr to (address of (sender of item I of maListe))

    Après "end repeat" ( Il y en a 2 )
    En ajoutant la ligne après le premier "end repeat", j'ai le message d'erreur :
    error "Erreur dans Microsoft Outlook*: Impossible de convertir address of sender of incoming message id 207355 en type specifier." number -1700 from address of sender of incoming message id 207355 to specifier

    En ajoutant la ligne après le deuwième "end repeat", j'ai le message d'erreur :
    error "Erreur dans Microsoft Outlook*: Impossible de convertir address of sender of outgoing message id 205873 en type specifier." number -1700 from address of sender of outgoing message id 205873 to specifier

    L'idéal serait donc d'avoir un script qui fonctionne et récupère toutes les adresses des expéditeurs ( pour mon dossier éléments reçus )
    Sans la fonction de récupération des adresses dans le corps du mail ( ça j'ai déjà fait le travail sur un dossier )

    Merci à toi encore

  3. #23
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    603
    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 : 603
    Points : 1 240
    Points
    1 240
    Par défaut
    Bonjour,
    J'ai ajouté un dialogue demandant si tu veux ou pas extraire les adresses dans le corps des emails.
    J'ai ajouté la ligne pour aussi extraire l'adresse des envoyeurs (Outlook a un petit bug, on est obligé de le faire en 2 lignes ).
    J'ai intégré que tu souhaites limiter les adresses à des domaines de 2 à 5 caractères seulement
    J'ai testé sur 2 emails (pour mémoire je n'utilise pas Outlook donc j'ai donc juste fait une installation rapide et ajouté 2 emails dans la boite.

    Voici le script complet :
    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
    -- récupère les adresses emails dans les emails sélectionnés
    
    set Choix to display dialog "Voulez vous extraire les adresses email contenues dans le corps des emails" buttons {"Extraire", "Ne pas extraire"}
    set EmailCorps to (button returned of Choix is "Extraire")
    
    
    set ListeAdresses to {}
    tell application "Microsoft Outlook"
        set maListe to selected objects--des emails sont selectionnés
        if (count of maListe) = 0 then -- pas d'emails sélectionnés donc on prend tous les emails du dossier sélectioné
            set monDossier to selected folder
            set maListe to every message of monDossier
        end if
        
        repeat with I from 1 to count of maListe
            if EmailCorps then
                tell me to set mesAdr to GetEmail(content of itemI of maListe) -- récupère les emails dans le corps
            else
                set mesAdr to {}
            end if
            set monAdresse to (sender of item I of maListe) -- récupère l'email de l'expéditeur
            set end of mesAdr to (address of monAdresse)
            set DestListe to every recipient of item I of maListe-- lit la liste de tous les recipients (incl. to, cc et bcc)
            repeat with J from 1 to count of DestListe
                set monAdresse to email address of item J of DestListe
                set end of mesAdr to (address of monAdresse) -- ajoute l'adresse en fin de liste
            end repeat
            set ListeAdresses to ListeAdresses & mesAdr-- ajoute la liste des adresses de cet email dans la liste generale
        end repeat
    end tell
    -- converti la liste en texte avec une adresse par ligne
    set AppleScript'stext item delimiters to {return}
    set the clipboard to ListeAdresses as text-- mets le text dans le presse papier
    
    
    tell application "Microsoft Excel" -- cree un nouveau document Excel et colle le texte.
    make new document
    activate
        tell active sheet to paste
    end tell
    
    
    
    
    on GetEmail(Tsource)
    (* 
    extrait la liste des adresses emails contenues dans le texte
        une adresse email est de la forme aaaaa@bbbbb.ccc selon la RFC5322
        aaaaa peut contenir n'importe quel caractère sauf une liste définie (le & est admis ! ). j'ai ajouté qu'il doit contenir plus de 4 caractères
        bbbbb ne doit contenir que des lettres (partie 1 du domaine)
        ccc ne doit contenir que des lettres sur 2 ou 3 caractères (partie 2 du domaine uniquement pour les emails)
    *)
        set myList to {}
        set AppleScript'stext item delimiters to "@"
        set Parts to text items of Tsource
        set AppleScript's text item delimiters to {space, linefeed, return, tab, quote, character id 160, "<", ">", "?", "!", ":", ";", "(", ")", "@", "ç", "[", "]", "%"}
        repeat with I from 2 to count of Parts
            set P1 to (text item -1 of item (I - 1) of Parts) -- partie aaaaa
            set P2 to (text item 1 of item I of Parts)
            set P1_OK to (length of P1 > 3) -- partie aaaa compte plus de 4 caractères
            set PosPt to offset of "." in P2
            set P2_OK to (PosPt > 0) and ((((length of P2) - PosPt) > 2) and (((length of P2) - PosPt) < 6)) -- domaine contient un point et 2 a 5 car après
            if P1_OK and P2_OK then set end of myList to P1 & "@" & P2
        end repeat
        return myList
    end GetEmail
    Cordialement

Discussions similaires

  1. comment lancer un script au demarrage de windows
    Par casaoui dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 26/02/2008, 18h03
  2. Script pour Outlook
    Par jessy82 dans le forum VBScript
    Réponses: 1
    Dernier message: 12/04/2007, 17h05
  3. Réponses: 4
    Dernier message: 14/12/2005, 12h16
  4. Comment lancer un script perl dans un script perl
    Par kiza dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2005, 21h02
  5. Réponses: 2
    Dernier message: 19/07/2005, 14h14

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