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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    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 é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,
    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
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    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
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    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
    Membre habitué
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2016
    Messages : 10
    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 é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,

    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

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, 17h22
  2. [VB6] fichier joint avec lotus
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 03/04/2006, 14h32
  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, 14h50
  4. Réponses: 2
    Dernier message: 23/11/2005, 17h30
  5. Limiter taille fichier joint à un mail
    Par fdthierry dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 27/08/2004, 13h12

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