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 :

Fichier joint avec application Mail


Sujet :

AppleScript

  1. #1
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Fichier joint avec application Mail
    Bonjour,

    Je suis débutant en applescript et j'ai "bricolé un programme pour envoyer en masse des attestations fiscales en utilisant un script qui :
    1 - lit les données individuelles dans un fichier Excel
    2 - Crée un fichier Pdf pour chaque attestation individuelle
    3 - Stocke l'attestation dans un répertoire spécifié
    4 - Envoi un mail individualisé avec l'attestation correspondante à la personne en pièce jointe.

    Ces deux dernières années ça a bien fonctionné. mais pour cette année toutes les étapes fonctionnent bien sauf la N° 4 où si j'arrive bien à créer le mail personnalisé, la pièce jointe ne se rajoute pas.

    Autre bizarrerie, une fois ou deux la pièce jointe s'est bien rajoutée, sans que je puisse identifier la raison, mais la plus part du temps il n'y a pas de pièce jointe.

    Ce qui a changé depuis l'année dernière, c'est d'une part que je suis passé à El Capitan et d'autre part que j'ai changé de DD qui porte un autre nom.

    Mais j'arrive bien à enregistrer le fichier pdf sur le DD dans le répertoire que je souhaite.

    Est ce que ça peut venir de El Capitan où y a t il une autre raison ?

    Les variables pour récupérer le fichier à joindre au mail sont "Répertoire" et "NomFichier". Et quand je les teste avec Display juste avant make new attachment with proprettes, les valeurs sont correctes.

    Merci par avance pour votre aide.

    Guy


    Le bout de code pour le mail est ci-dessous :
    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
    -- Paramétrer le mail
    tell application "Mail"
    	set leCorps to "Bonjour," & return & return & "Tu trouveras ci-joint ton attestation fiscale pour l'année 2015" & return & return & "Si tu souhaites un envoi papier à ton adresse, il suffit de le demander en répondant à ce mail (si ce n'est pas déjà fait) en indiquant ton adresse courrier si elle a changé dernièrement." & return & return & "Guy FROMENT" 
    	set LeSujet to "CONFIDENTIEL pour " & Civilite & " " & NomPrenom & " - Attestation 2015"
    	set nouveauMessage to make new outgoing message with properties {subject:LeSujet, content:leCorps & return & return}
    	set expediteur to "guyfroment@gmail.com"
    	set destinataire to AdresseMail
    	--display dialog AdresseMail
     
    	tell nouveauMessage
    		set visible to true
    		make new to recipient at end of to recipients with properties {name:expediteur, address:destinataire}
     
    		tell content
    		--display dialog "Répertoire = " & Repertoire & return & "Nom du fichier = " & NomFichier & " Attestation fiscale 2015.pdf"
    		         make new attachment with properties {file name:Repertoire & NomFichier & " Attestation fiscale 2015.pdf"} at after the last paragraph
    		end tell
     
                    send nouveauMessage
     
    	end tell
    end tell

  2. #2
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    602
    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 : 602
    Points : 1 239
    Points
    1 239
    Par défaut
    Bonsoir,
    Ta syntaxe pour ajouter la pièce jointe étant visiblement correcte, il semble logique que la raison pour laquelle l'instruction échoue, c'est qu'elle ne trouve pas le fichier PDF à ajouter. C'est sans doute l'erreur que donne le script en exécution.

    En lisant attentivement ton script, il y a un espace devant le nom du fichier PDF : es tu certain que le nom du fichier " Attestation fiscale 2015.pdf" commence bien par un espace ?

    Je te suggère de commencer par vérifier ce point.
    Tu peux ensuite vérifier que le fichier Repertoire & NomFichier &" Attestation fiscale 2015.pdf" existe bien, par exemple avec un script comme ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    tell application "Finder" to set MonOK to (Repertoire & NomFichier & " Attestation fiscale 2015.pdf") existsif MonOK then
        display dialog "fichier OK"
    else
        display dialog "fichier introuvable"
    
    end if
    Bien sûr j'ai remis dans ce script l'espace devant le nom, tel qu'il figure dans ton script !

    Cordialement

  3. #3
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Bonsoir,

    Merci de ta réponse. J'ai intégré ton bout de code dans le programme et testé. la réponse est "Fichier Ok". Il le trouve bien, mais pas de pièce jointe.

    Ce qui est bizarre c'est que l'année dernière ça fonctionnait et que cette année ça a marché 2 fois, mais sans que j'arrive à comprendre pourquoi.

    L'espace doit y être car NomFichier retourne par exemple "FROMENT Guy" et le nom du fichier est "FROMENT Guy Attestation fiscale 2015".

    De plus, je n'ai pas d'erreur générée ni pour un envoi simple, ni pour un envoi multiple.

    Je peux faire une simulation sur 1 ou plusieurs envois car j'ai mis le programme dans une boucle comme ci-dessous ou je teste un envoi sur la 102 éme ligne du fichier excel
    repeat with i from 102 to 102
    end repeat

    Et lorsque je lance une série de mail je génère tous les fichiers, tous les mails personnalisés, les envois, mais sans la pièce jointe personnelle. Le tout sans erreur.

    Là je ne comprends plus ce qui se passe. Je galère depuis 2 jours à trouver pourquoi et je contact ce forum car je cale.

    Quelles sont les autres pistes possibles ?

    merci par avance.

    Guy

  4. #4
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Bonjour PBELL,

    Hier soir j'ai fait quelques motif dans le script pour essayer de trouver une solution, et bizarrement, en déplaçant le bout de code envoyé pour tester l'existence du fichier, cette fois ça m'indique fichier introuvable.

    Donc tu avais raison, il ne trouve pas le fichier. Mais pourtant celui-ci existe bien......

    Explications:

    1 - Lorsque je crée le fichier pdf intitulé "FROMENT GUY Attestation fiscale 2015.pdf", je le fait avec le code suivant :
    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
     
    -- Ouvre le fichier modèle pour les attestations
    		set Fichier to (path to desktop folder as string) & "Attestation.xlsx"
    		open Fichier
    		-- renseigner les zones avec les variables
    		set formula of cell "F10" to Civilite & "  " & NomPrenom
    		set formula of cell "F12" to Adresse
    		set formula of cell "F14" to " " & CodePostal & "  " & Commune
    		set formula of cell "F17" to "Lyon, le " & date string of the (current date)
    		set formula of cell "B35" to Phrase1
    		set formula of cell "B36" to Phrase2
     
     
    		-- Sauvegarde du Fichier
    		set NomFichier to NomPrenom
    		tell application "Finder"
    			set CheminSauvegarde to alias ":Users:guyfroment:Documents:Attestations 2015" as string
    		end tell
     
     
    		set MaFeuille to sheet "Attestation fiscale 2015" of active workbook
    		save MaFeuille in (CheminSauvegarde & NomFichier & ".pdf") as PDF file format
     
    		close active workbook saving no
    Mon fichier Excel Modèle qui se trouve sur le bureau s'appelle "Attestation.xlsx" . Il comporte 1 seul onglet qui est nommé "Attestation fiscale 2015".

    Je sauvegarde dans le répertoire "Users:guyfroment: Documents:Attestations 2015" et le code écrit, crée bien dans ce répertoire un fichier nommé "FROMENT GUY Attestation fiscale 2015.pdf", même si la valeur NomFichier est "FROMENT Guy".


    2 - Après avoir lancé script, je regarde ensuite dans la partie "réponse" en bas de la fenêtre, les valeurs des variables :

    save worksheet 1 of active workbook in "Untitled 1:Users:guyfroment: Documents:Attestations 2015:FROMENT GUY.pdf" as PDF file format
    close active workbook saving no
    exists "Untitled 1:Users:guyfroment: Documents:Attestations 2015:FROMENT GUY Attestation fiscale 2015.pdf"
    --> false
    display dialog "fichier introuvable"
    --> {button returned:"OK"}

    En fait, la ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    save MaFeuille in (CheminSauvegarde & NomFichier & ".pdf") as PDF file format
    donnerai comme résultat la création d'un fichier nommé "FROMENT GUY.pdf" dans le répertoire "Untitled 1:Users:guyfroment: Documents:Attestations 2015:". Or c'est faux puisque je constate que le nom du fichier dans le répertoire est "FROMENT GUY Attestation fiscale 2015.pdf". Tout se passe comme si le nom de l'onglet avait été rajouté, sans le spécifier, au nom de fichier créé.


    3 - j'ai donc testé si le fichier existait bien en modifiant la première ligne de ton test en spécifiant explicitement l'adresse, la ligne initiale étant juste dessous, désactivée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    --Teste si le fichier existe
    		tell application "Finder" to set MonOK to ("Untitled 1:Users:guyfroment:Documents:Attestations 2015:FROMENT GUY Attestation fiscale 2015.pdf")
    		--tell application "Finder" to set MonOK to (Repertoire & NomFichier & " Attestation fiscale 2015.pdf")
    		if exists MonOK then
    			display dialog "fichier OK"
    		else
    			display dialog "fichier introuvable"
    		end if
    		---Fin du test
    Et là encore il ne trouve pas le fichier alors qu'il est bien dans le répertoire.

    je n'arrive toujours pas à comprendre ce qui se passe et comment rectifier.

    Guy

  5. #5
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut J'ai avancé un peu, mais ça Bug toujours
    Bonjour PBELL,

    j'ai un peu avancé, en recherchant pourquoi le script ne trouvait pas le fichier alors qu'il existait bien dans le répertoire spécifié.

    j'ai donc, après le ligne display dialog "fichier introuvable", tenté d'ouvrir le fichier de deux manière. Voir code ci-dessous.
    La première qui fonctionne consiste à l'ouvrir avec l'adresse spécifiée en clair et la seconde en utilisant les variables. C'est dans ce second cas que ça ne fonctionne par et il y a le message "Impossible de convertir «class cfol» "Attestations 2015" of «class cfol» "Documents" of «class cfol» "guyfroment" of «class cfol» "Users" of «class sdsk» of application "Finder" en type list, record or text." qui arrive.

    Si j'ai bien compris (pas certain ..) c'est une histoire de déclaration de l'adresse du fichier en alias ou pas.

    J'ai fait divers essais mais toujours pas de pièces jointe.

    Une idée ?

    Merci par avance

    Guy



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    --Tenter d'ouvrir le fichier avec l'adresse explicite
    			(*tell application "Finder"
    				activate
    				open alias ":Untitled 1:Users:guyfroment:Documents:Attestations 2015:FROMENT GUY Attestation fiscale 2015.pdf"
    			end tell*)
    			--Réponse ça fonctionne, le fichier s'ouvre
     
    			--Tenter d'ouvrir le fichier avec l'adresse par variable
    			tell application "Finder"
    				activate
    				open alias Repertoire & NomFichier & " Attestation fiscale 2015.pdf"
    			end tell
    			-- Réponse = Impossible de convertir «class cfol» "Attestations 2015" of «class cfol» "Documents" of «class cfol» "guyfroment" of «class cfol» "Users" of «class sdsk» of application "Finder" en type list, record or text.

  6. #6
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    602
    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 : 602
    Points : 1 239
    Points
    1 239
    Par défaut
    Bonsoir,

    Citation Envoyé par guyfroment Voir le message
    message "Impossible de convertir «class cfol» "Attestations 2015" of «class cfol» "Documents" of «class cfol» "guyfroment" of «class cfol» "Users" of «class sdsk» of application "Finder" en type list, record or text."
    Donc cela confirme ce que je pensais, le script ne trouve pas le fichier. C'est effectivement une question d'alias ou de texte.
    Comme tu ne montres pas, dans ton script, comment tu assignes/déclares les variables "Repertoire" et "NomFichier"... ce n'est pas facile !!

    Je soupçonne que la variable Repertoire ne soit pas une string, mais déjà un alias. Tu peux la remettre en string avec une instruction du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set SRep to repertoire as string
    ...et utiliser SRep dans la suite.

    Sinon, en cas de doute, tu peux afficher dans un display dialog, la class de la variable ...

    Cordialement

  7. #7
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Bonsoir PBELL,

    Et merci encore pur cette réponse.

    Comme j'ai faut entre temps des motifs et des améliorations, je me suis perdu ...

    Je vais donc reprendre tout le script de A à Z en tenant compte de ta remarque. Et si ça ne fonctionne pas j'enverrai tout le script, je n'avais pas pigé au premier envoi l'importance de la déclaration des variables. je retiens la remarque pour d'éventuels autres questions.

    j'ai vu aussi en recherchant sur internet que l'on pouvait déclarer le chemin du fichier avec POSIX. ça pourrait fonctionner dans mon cas ?

    Et une petite dernière question de novice... Je bataille avec la présentation des données dans le mail, données que je lis dans le fichier Excel. Par exemple un N° de téléphone s'affiche 6,777777E+8, une date : mercredi 1 septembre 2004 00:00:00.
    Y a t il de la documentation en ligne qui permettre de connaître la syntaxe d'écriture des variables ?

    Cordialement,

    Guy

  8. #8
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    602
    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 : 602
    Points : 1 239
    Points
    1 239
    Par défaut
    Bonsoir,

    Citation Envoyé par guyfroment Voir le message
    le chemin du fichier avec POSIX.
    Il y a 2 mode en applescript
    1) les chemins "Finder", dont les niveaux dossier/sous-dossier/.... sont séparés par des ":", par exemple : Untitled 1:Users:guyfroment: Documents:Attestations 2015:FROMENT GUY Attestation fiscale 2015.pdf
    2) les chemins POSIX qui reprennent la syntaxe shell Unix, comme ce que tu peux utiliser sur le Terminal. Par exemple :Untitled 1/Users/guyfroment/Documents/Attestations 2015/FROMENT GUY Attestation fiscale 2015.pdf (j'oublie volontairement les caractères spéciaux pour simplifier)

    Applescript mélange allègrement ces 2 syntaxe.
    Pour faire un "move" de fichier via le Finder, on utilise un chemin avec des ":", mais les chemins d'accès aux pistes dans iTunes sont donnés par des chemins "/".
    Pour embrouiller un peu plus, le chemin ":' peut être stocké dans un variable de type text ou string ou encore dans une variable qui indique une référence au fichier, donc un alias.
    L'accès à la bibliothèque, dans l'éditeur de script, indique si les fonctions attendent un string ou un alias (ou autre !)

    Citation Envoyé par guyfroment Voir le message
    un N° de téléphone s'affiche 6,777777E+8, une date : mercredi 1 septembre 2004 00:00:00.
    L'affichage dans Excel est une chose (réglée avec le format de la cellule) et la lecture de la valeur de la cellule en est une autre. De plus, lors de la lecture vers une variable Applescript tu peux faire de la conversion de type en forçant le type désiré. C'est l'exemple que j'ai donné avec le "as string" qui force la variable à s'enregistre en string.
    Applescript est assez souple et permet beaucoup de conversions de type.

    Quant à la date, tu peux aussi forcer des formats de date. Par exemple "date string of (ta-date)" ne donne que la date, en supprimant les heures (00:00:00). Il y a des centaines de façon de changer de format que tu trouves en cherchant sur Google "applescript format date".
    Et sur un cas précis, tu peux toujours poser la question sur ce forum si tu n'as rien trouvé dans l'ami Google.

    Cordialement

  9. #9
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Bonsoir PBELL,

    J'ai retravaillé le script en enlevant toute la lecture du fichier Excel et le paramétrage pour me concentrer sur ce problème du script pour trouver le fichier. J'ai mis le script entier ci-dessous.

    Malheureusement je n'arrive toujours pas à insérer le pièce jointe (j'ai testé aussi le nom du fichier sans les espaces, même résultat).

    J'ai mis dans la boucle "Tell nouveauMessage" 2 tests et j'ai inséré en remarque les résultats des tests.

    Le premier pour ouvrir le fichier (dans une boucle "Tell application Finder". J'arrive bien à ouvrir le fichier

    Le deuxième, juste en dessous du premier, est ton test pour voir si le fichier existe pour le script. J'ai fait 3 variantes en changeant la classe de "CheminFichier" dans l'expression "make new attachment with properties {file name:CheminFichier as alias} at after the last paragraph". Dans tous les cas le mail arrive bien, mais sans la pièce jointe:
    1 - en mettant "as alias" comme ci-dessus : Message d'erreur fichier introuvable (alors qu'il avait été ouvert juste avant)
    2 - sans spécifier la classe : pas de message d'erreur
    3 - en mettant "as string" : Même résultat qu'en 1 -

    Bref, je sèche .... La solution doit être simple, mais je ne la trouve pas.Merci par avance pour ton aide.

    Sinon j'ai pu à peu près trouver ce que je cherchai pour les dates, mais internet foisonne de liens, pas toujours valides et souvent en anglais que je parle ...que sous la torture.....Je me contente de ce que j'ai trouvé, et je vais aller piocher dans les forums du site, vu la qualité des réponses.

    Cordialement





    {file name:CheminFichier as alias}
    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
    tell application "Mail"
    	activate
    	set leSujet to "CONFIDENTIEL pour M. FROMENT Guy - Attestation 2015" as string
    	set CorpsMail to " Bonjour, ........." as string
     
    	set nouveauMessage to make new outgoing message with properties {subject:leSujet, content:CorpsMail & return & return}
     
    	set expediteur to "guyfroment@gmail.com"
    	set destinataire to "guyfroment@gmail.com"
     
     
    	set CheminFichier to ":Untitled 1:Users:guyfroment:Documents:Attestations 2015:FROMENT GUY Attestation fiscale 2015.pdf" as string
    	display dialog CheminFichier & " = " & return & class of CheminFichier
    	(* 
    	 Resultat = 
    	 :Untitled 1:Users:guyfroment:Documents:Attestations 2015:FROMENT GUY Attestation fiscale 2015.pdf  
            text
    	*)
     
     
    	tell nouveauMessage
    		set visible to true
    		make new to recipient at end of to recipients with properties {name:expediteur, address:destinataire}
    		tell content
     
    			-- teste pour ouvrir le fichier
    			tell application "Finder"
    				activate
    				open alias CheminFichier
    				--Résultat : Le fichier s'ouvre bien
    			end tell
     
    			-- Test pour vérifier si le script trouve le fichier
    			if exists CheminFichier then
    				display dialog "fichier OK"
    				-- Résultat : "ichier OK"
    			else
    				display dialog "fichier introuvable"
    			end if
     
     
    			make new attachment with properties {file name:CheminFichier as alias} at after the last paragraph
     
    		end tell
     
    		send nouveauMessage
    		(*
    		Resultat avec {file name:CheminFichier as alias} at after the last paragraph : 
    		     - Le mail arrive bien mais pas de pièce jointe 
    		     - Le message d'erreur est "Le fichier :Untitled 1:Users:guyfroment:Documents:Attestations 2015:FROMENT GUY Attestation fiscale 2015.pdf est introuvable."
     
    		Resultat avec {file name:CheminFichier} at after the last paragraph : 
    	          - Le mail arrive bien mais pas de pièce jointe 
    		  - Pas de message d'erreur
     
    	     Resultat avec {file name:CheminFichier} at after the last paragraph : 
    	         - Le mail arrive bien mais pas de pièce jointe 
    		  - Pas de message d'erreur
     
    	   *)
     
     
    	end tell
     
    end tell

  10. #10
    Membre éprouvé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    602
    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 : 602
    Points : 1 239
    Points
    1 239
    Par défaut
    Bonsoir Guy,
    Dans l'instruction "make new attachment" , le paramètre file name doit être un alias (une référence au fichier).
    Tu as donc plusieurs méthodes possibles :
    - la variable CheminFichier (":Untitled 1:Users:guyfroment:..... fiscale 2015.pdf") est une string, dans ce cas il faut mettre : {file name : CheminFichier as alias}
    - la variable CheminFichier contient un alias vers le fichier et dans ce cas il suffit de mettre {file name : CheminFichier}

    J'en profite pour te signaler qu'il n'est pas conseillé de mettre un chemin "en dur" dans un script car si tu changes de disque dur ou d'utilisateur, le script ne fonctionne plus.
    Il est plus souple et joli de partir du dossier Documents de l'utilisateur en cours. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set CheminFichier to ((path to documents folder) as string) & "Attestations 2015:FROMENT GUY Attestation fiscale 2015.pdf"
    Bien sûr dans ce cas la variable CheminFichier est....une string !! Donc à faire suivre de 'as alias' pour l'instruction CheminFichier.


    Une fois cela réglé, il reste que le mail part, ...mais sans fichier.
    C'est me semble-t-il un comportement qui n'existait pas sur SnowLeopard (10.6), mais qui peut poser un problème sur ElCapitain (10.11).
    Pour le contourner, il suffit d'ajouter un délai entre l'ajout de la pièce jointe et l'envoi de l'email, ce qui laisse à Mail le temps de réagir.
    Le délai doit sans doute être variable selon la taille de la pièce jointe et la vitesse de ta machine....à essayer.

    Dans le script ci-dessous qui fonctionne, j'ai mis un délai de 1 seconde.(ElCapitain, iMac27 i7)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    set CheminFichier to choose file-- c'est un alias !!set Mon_Sujet to "sujet du mail"
    set Mon_Content to "essai de texte"
    set Mon_Destinataire to "p_bell@orange.fr"
    
    tell application "Mail"
    activate
        set newMessage to make new outgoing message with properties {visible:true, subject:Mon_Sujet, content:Mon_Content}
        tell newMessage
    make new to recipient at end of to recipients with properties {name:"", address:Mon_Destinataire}
    make new attachment with properties {file name:CheminFichier} at after the last paragraph
        end tell
    delay 1
    send newMessage
    end tell
    Si tu choisis la méthode 'string', pense à ajouter 'as alias' après CheminFichier, dans l'instruction new attachment !

    Cordialement

  11. #11
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut Eureka ça marche.
    Bonsoir PBELL,

    Un grand merci pour ton aide.

    Le script fonctionne enfin avec la pièce jointe. J'avais testé à un moment le délai, mais ne pensais pas qu'il fallait le combiner avec la déclaration en alias du chemin du fichier. D'ailleurs sur la déclaration des variables je pataugeai et tes conseils m'ont permis d'y voir plus clair.

    Pour le délai, effectivement ça doit provenir d'El Capitan car les deux années précédentes le script fonctionnait bien.


    Merci aussi pour tous les autres conseils donnés que je prends en compte.

    Bonne soirée

    Guy

Discussions similaires

  1. [PEAR][Mail] [Mail_Mime] Fichier joint avec la classe Mime Mail
    Par boteha dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/08/2006, 16h22
  2. [VB6] fichier joint avec lotus
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 03/04/2006, 13h32
  3. [VB]Identifier le nom raccourci d'un fichier joint a un mail
    Par developpeurvb dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 07/02/2006, 13h50
  4. Réponses: 2
    Dernier message: 23/11/2005, 16h30
  5. Limiter taille fichier joint à un mail
    Par fdthierry dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 27/08/2004, 12h12

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